Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DataGridViewButtonCell.cs
- RelatedImageListAttribute.cs
- HasCopySemanticsAttribute.cs
- ProxyWebPartConnectionCollection.cs
- Win32.cs
- UTF8Encoding.cs
- SafeNativeMethods.cs
- EtwTrace.cs
- AnchorEditor.cs
- xml.cs
- WebPartConnectionsCancelEventArgs.cs
- LogEntryHeaderDeserializer.cs
- smtppermission.cs
- EasingFunctionBase.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- OracleTimeSpan.cs
- COSERVERINFO.cs
- ContextDataSourceView.cs
- StorageMappingItemLoader.cs
- TypeUtil.cs
- baseaxisquery.cs
- DiscriminatorMap.cs
- StoryFragments.cs
- MetadataHelper.cs
- SystemEvents.cs
- ProxyWebPartConnectionCollection.cs
- CopyNodeSetAction.cs
- SurrogateSelector.cs
- WebPartZone.cs
- Matrix.cs
- HMACSHA256.cs
- EmptyEnumerable.cs
- StylusPointPropertyInfoDefaults.cs
- WebSysDefaultValueAttribute.cs
- WebSysDisplayNameAttribute.cs
- JoinSymbol.cs
- PeerNameRegistration.cs
- ProcessModuleDesigner.cs
- HiddenFieldDesigner.cs
- WindowAutomationPeer.cs
- SimpleHandlerBuildProvider.cs
- DetailsViewCommandEventArgs.cs
- Margins.cs
- WindowsUpDown.cs
- WebPartVerbCollection.cs
- DataGridViewColumnConverter.cs
- RegistryKey.cs
- ProjectionCamera.cs
- InternalsVisibleToAttribute.cs
- DataGridLength.cs
- DiagnosticsConfigurationHandler.cs
- ReadOnlyCollectionBase.cs
- DBBindings.cs
- WebConfigurationManager.cs
- TimeIntervalCollection.cs
- HebrewCalendar.cs
- ObjectSecurity.cs
- __TransparentProxy.cs
- PauseStoryboard.cs
- ReflectTypeDescriptionProvider.cs
- GetMemberBinder.cs
- DataGridViewCellStyleChangedEventArgs.cs
- MailWebEventProvider.cs
- PathStreamGeometryContext.cs
- Schema.cs
- RelationshipManager.cs
- BulletChrome.cs
- FunctionOverloadResolver.cs
- CacheManager.cs
- ImagingCache.cs
- EventSourceCreationData.cs
- ToolConsole.cs
- SplitterCancelEvent.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CodeIdentifiers.cs
- LicenseProviderAttribute.cs
- DataGridViewIntLinkedList.cs
- ChildrenQuery.cs
- HwndKeyboardInputProvider.cs
- SafeProcessHandle.cs
- Configuration.cs
- BitmapEffectDrawingContextState.cs
- EmbeddedMailObject.cs
- coordinatorscratchpad.cs
- TableStyle.cs
- NullExtension.cs
- AccessKeyManager.cs
- DropShadowBitmapEffect.cs
- RadioButtonBaseAdapter.cs
- PersonalizationAdministration.cs
- WaitingCursor.cs
- Message.cs
- RegistryExceptionHelper.cs
- ApplicationServiceManager.cs
- DataSourceXmlElementAttribute.cs
- ApplicationInfo.cs
- SpecularMaterial.cs
- BreadCrumbTextConverter.cs
- AddInContractAttribute.cs
- MultipleViewProviderWrapper.cs