Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpCacheVary.cs
- CodeTryCatchFinallyStatement.cs
- ParallelDesigner.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ReferenceEqualityComparer.cs
- DefaultValidator.cs
- CryptoConfig.cs
- EditorPartCollection.cs
- WindowsRichEdit.cs
- ObjectDisposedException.cs
- Ipv6Element.cs
- CacheVirtualItemsEvent.cs
- KerberosTokenFactoryCredential.cs
- TemplatePartAttribute.cs
- JoinSymbol.cs
- Timeline.cs
- Utils.cs
- DataGridBeginningEditEventArgs.cs
- BuilderPropertyEntry.cs
- TypeLoadException.cs
- DownloadProgressEventArgs.cs
- NotSupportedException.cs
- CustomAttributeFormatException.cs
- ConnectionInterfaceCollection.cs
- DbConnectionPoolCounters.cs
- DrawItemEvent.cs
- XmlHierarchicalDataSourceView.cs
- SimpleTypeResolver.cs
- RtfControlWordInfo.cs
- PreviewPageInfo.cs
- httpapplicationstate.cs
- VisualBasicImportReference.cs
- InlineUIContainer.cs
- HttpServerUtilityBase.cs
- NumericUpDown.cs
- XmlSerializerNamespaces.cs
- COM2ExtendedTypeConverter.cs
- GlobalProxySelection.cs
- ResourceExpressionBuilder.cs
- Operators.cs
- Rect.cs
- Visual3DCollection.cs
- AlignmentXValidation.cs
- WebExceptionStatus.cs
- DataGridViewComboBoxEditingControl.cs
- SuppressMessageAttribute.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- BitHelper.cs
- ResourceCollectionInfo.cs
- GeometryDrawing.cs
- UriParserTemplates.cs
- Properties.cs
- StructuralType.cs
- InputBuffer.cs
- GorillaCodec.cs
- XmlSerializationWriter.cs
- AQNBuilder.cs
- UnsupportedPolicyOptionsException.cs
- NativeMethods.cs
- PermissionToken.cs
- Slider.cs
- WebPartAuthorizationEventArgs.cs
- UInt16Converter.cs
- StackBuilderSink.cs
- Metafile.cs
- WindowsListViewGroupSubsetLink.cs
- HttpWebResponse.cs
- TextDecorationUnitValidation.cs
- CodeVariableDeclarationStatement.cs
- MatrixKeyFrameCollection.cs
- SqlParameterCollection.cs
- XPathExpr.cs
- JsonReaderWriterFactory.cs
- MimeTypePropertyAttribute.cs
- ListBoxDesigner.cs
- WaitHandleCannotBeOpenedException.cs
- XmlUTF8TextReader.cs
- AttributeCollection.cs
- CodeChecksumPragma.cs
- DiscoveryService.cs
- DBAsyncResult.cs
- TimeEnumHelper.cs
- PeerNearMe.cs
- TcpChannelListener.cs
- XPathDescendantIterator.cs
- XmlReflectionMember.cs
- HttpWebRequestElement.cs
- DataSet.cs
- ViewBase.cs
- CfgParser.cs
- PagedControl.cs
- GenericRootAutomationPeer.cs
- TableCell.cs
- DockPatternIdentifiers.cs
- GenericTypeParameterConverter.cs
- TraceInternal.cs
- Int32Storage.cs
- StateManagedCollection.cs
- ErrorHandler.cs
- ProcessHost.cs