Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 1 / IDQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; using System.Diagnostics; using System.Collections.Generic; internal sealed class IDQuery : CacheOutputQuery { public IDQuery(Query arg) : base(arg) {} private IDQuery(IDQuery other) : base(other) { } public override object Evaluate(XPathNodeIterator context) { object argVal = base.Evaluate(context); XPathNavigator contextNode = context.Current.Clone(); switch (GetXPathType(argVal)) { case XPathResultType.NodeSet: XPathNavigator temp; while ((temp = input.Advance()) != null) { ProcessIds(contextNode, temp.Value); } break; case XPathResultType.String: ProcessIds(contextNode, (string)argVal); break; case XPathResultType.Number: ProcessIds(contextNode, StringFunctions.toString((double)argVal)); break; case XPathResultType.Boolean: ProcessIds(contextNode, StringFunctions.toString((bool)argVal)); break; case XPathResultType_Navigator: ProcessIds(contextNode, ((XPathNavigator)argVal).Value); break; } return this; } void ProcessIds(XPathNavigator contextNode, string val) { string[] ids = XmlConvert.SplitString(val); for (int idx = 0; idx < ids.Length; idx++) { if (contextNode.MoveToId(ids[idx])) { Insert(outputBuffer, contextNode); } } } public override XPathNavigator MatchNode(XPathNavigator context) { Evaluate(new XPathSingletonIterator(context, /*moved:*/true)); XPathNavigator result; while ((result = Advance()) != null) { if (result.IsSamePosition(context)) { return context; } } return null; } public override XPathNodeIterator Clone() { return new IDQuery(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; using System.Diagnostics; using System.Collections.Generic; internal sealed class IDQuery : CacheOutputQuery { public IDQuery(Query arg) : base(arg) {} private IDQuery(IDQuery other) : base(other) { } public override object Evaluate(XPathNodeIterator context) { object argVal = base.Evaluate(context); XPathNavigator contextNode = context.Current.Clone(); switch (GetXPathType(argVal)) { case XPathResultType.NodeSet: XPathNavigator temp; while ((temp = input.Advance()) != null) { ProcessIds(contextNode, temp.Value); } break; case XPathResultType.String: ProcessIds(contextNode, (string)argVal); break; case XPathResultType.Number: ProcessIds(contextNode, StringFunctions.toString((double)argVal)); break; case XPathResultType.Boolean: ProcessIds(contextNode, StringFunctions.toString((bool)argVal)); break; case XPathResultType_Navigator: ProcessIds(contextNode, ((XPathNavigator)argVal).Value); break; } return this; } void ProcessIds(XPathNavigator contextNode, string val) { string[] ids = XmlConvert.SplitString(val); for (int idx = 0; idx < ids.Length; idx++) { if (contextNode.MoveToId(ids[idx])) { Insert(outputBuffer, contextNode); } } } public override XPathNavigator MatchNode(XPathNavigator context) { Evaluate(new XPathSingletonIterator(context, /*moved:*/true)); XPathNavigator result; while ((result = Advance()) != null) { if (result.IsSamePosition(context)) { return context; } } return null; } public override XPathNodeIterator Clone() { return new IDQuery(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DocumentPropertiesDialog.cs
- securitycriticaldata.cs
- EntityDescriptor.cs
- QueryOperationResponseOfT.cs
- Set.cs
- HotCommands.cs
- RemotingAttributes.cs
- GridViewSelectEventArgs.cs
- ObjectCacheHost.cs
- NavigationWindowAutomationPeer.cs
- StringConverter.cs
- CustomBindingCollectionElement.cs
- SmtpFailedRecipientsException.cs
- UpDownEvent.cs
- ConnectionDemuxer.cs
- CodeNamespaceImportCollection.cs
- Debug.cs
- StaticContext.cs
- IItemContainerGenerator.cs
- WindowsClaimSet.cs
- XPathNode.cs
- EncryptedReference.cs
- HttpCookiesSection.cs
- ElementFactory.cs
- WindowsFormsSynchronizationContext.cs
- Literal.cs
- Binding.cs
- TextRange.cs
- ExpressionBinding.cs
- XmlSchemaSequence.cs
- TextSelectionHelper.cs
- diagnosticsswitches.cs
- BStrWrapper.cs
- InstallerTypeAttribute.cs
- SocketPermission.cs
- TextSearch.cs
- RtfNavigator.cs
- StringValidatorAttribute.cs
- TextTreeDeleteContentUndoUnit.cs
- WebResourceAttribute.cs
- RoutedEventHandlerInfo.cs
- InvalidCardException.cs
- ReceiveReply.cs
- DrawingState.cs
- XsltOutput.cs
- User.cs
- HtmlFormParameterReader.cs
- MergeFilterQuery.cs
- ProviderException.cs
- SystemIcmpV6Statistics.cs
- BinaryFormatter.cs
- XamlInt32CollectionSerializer.cs
- FixUpCollection.cs
- TagNameToTypeMapper.cs
- ModelServiceImpl.cs
- CollectionChangeEventArgs.cs
- ExtensionQuery.cs
- WindowsAuthenticationEventArgs.cs
- WindowsRebar.cs
- DeclaredTypeElementCollection.cs
- DrawingImage.cs
- ping.cs
- ValueTable.cs
- NotifyIcon.cs
- DynamicObjectAccessor.cs
- FontDialog.cs
- PipeStream.cs
- ExpressionQuoter.cs
- SingleTagSectionHandler.cs
- LoginName.cs
- recordstatescratchpad.cs
- Keyboard.cs
- Dispatcher.cs
- UnknownMessageReceivedEventArgs.cs
- XPathAncestorIterator.cs
- DataGridViewCellStyle.cs
- TypeBrowser.xaml.cs
- sqlcontext.cs
- validationstate.cs
- IdentityHolder.cs
- ScriptingProfileServiceSection.cs
- SortAction.cs
- GridItemCollection.cs
- ICspAsymmetricAlgorithm.cs
- ReverseInheritProperty.cs
- AutomationEvent.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- PageContent.cs
- CollectionViewGroupRoot.cs
- mediapermission.cs
- XmlSiteMapProvider.cs
- SAPIEngineTypes.cs
- StreamWriter.cs
- UpdateRecord.cs
- SchemaImporterExtensionElement.cs
- XmlSignatureProperties.cs
- TypeUsageBuilder.cs
- ScrollViewerAutomationPeer.cs
- TypefaceMetricsCache.cs
- EntityDataSourceConfigureObjectContext.cs