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
- BrowserCapabilitiesCompiler.cs
- SchemaNames.cs
- SingleKeyFrameCollection.cs
- ProfileBuildProvider.cs
- IDReferencePropertyAttribute.cs
- DefaultTraceListener.cs
- DataChangedEventManager.cs
- BindableAttribute.cs
- SourceFileInfo.cs
- FileUtil.cs
- WindowsGraphics.cs
- ReadOnlyCollection.cs
- serverconfig.cs
- StyleCollection.cs
- RepeaterItemEventArgs.cs
- TextSearch.cs
- WebPartEditorCancelVerb.cs
- UIAgentAsyncBeginRequest.cs
- RectAnimationUsingKeyFrames.cs
- ItemsChangedEventArgs.cs
- DataServiceResponse.cs
- ConditionalBranch.cs
- PreservationFileReader.cs
- SelectionWordBreaker.cs
- TextDecorations.cs
- ComEventsSink.cs
- GridSplitter.cs
- StructuredType.cs
- XPathNodeIterator.cs
- Decimal.cs
- AuthorizationRule.cs
- SuppressIldasmAttribute.cs
- EngineSiteSapi.cs
- DataBoundControlAdapter.cs
- PtsHelper.cs
- Geometry.cs
- SqlMethodCallConverter.cs
- DrawListViewSubItemEventArgs.cs
- DocumentViewerConstants.cs
- DataListItemCollection.cs
- GeneralTransformGroup.cs
- ArgIterator.cs
- TextSerializer.cs
- PathBox.cs
- ThreadStaticAttribute.cs
- DataColumn.cs
- HttpCookiesSection.cs
- BaseResourcesBuildProvider.cs
- Process.cs
- HttpHandlerAction.cs
- XmlSchemaObject.cs
- RSAProtectedConfigurationProvider.cs
- SQLSingle.cs
- DataServiceHostWrapper.cs
- RequestCacheManager.cs
- ExpressionConverter.cs
- DynamicILGenerator.cs
- RectAnimation.cs
- GeometryModel3D.cs
- ClientSettingsStore.cs
- DropShadowBitmapEffect.cs
- PropertyEmitterBase.cs
- Vector3DConverter.cs
- SqlInternalConnectionTds.cs
- StorageConditionPropertyMapping.cs
- ColorTransformHelper.cs
- DispatchChannelSink.cs
- Int16Storage.cs
- SmiMetaDataProperty.cs
- DataGridViewCell.cs
- XmlSchemaAnnotated.cs
- QueryStringParameter.cs
- WebPartConnectionCollection.cs
- DropShadowBitmapEffect.cs
- RemoteWebConfigurationHostStream.cs
- LogicalCallContext.cs
- WindowsBrush.cs
- AttachmentService.cs
- XPathDescendantIterator.cs
- PositiveTimeSpanValidator.cs
- TextSelectionHelper.cs
- KeyedHashAlgorithm.cs
- Vector3D.cs
- FastEncoderStatics.cs
- DataTableCollection.cs
- DrawingContextDrawingContextWalker.cs
- InputReferenceExpression.cs
- PointConverter.cs
- HotSpotCollectionEditor.cs
- ToolStripSplitStackLayout.cs
- VariableDesigner.xaml.cs
- Constants.cs
- DependencyPropertyAttribute.cs
- UInt16Converter.cs
- DocumentViewerHelper.cs
- TextTreeTextNode.cs
- ResourceDefaultValueAttribute.cs
- SessionStateSection.cs
- ScrollViewerAutomationPeer.cs
- RawStylusInputReport.cs