Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextTreeTextBlock.cs
- TaiwanCalendar.cs
- Update.cs
- SHA512CryptoServiceProvider.cs
- PreviewControlDesigner.cs
- _SslState.cs
- EditorPartChrome.cs
- WebServiceHostFactory.cs
- XmlChoiceIdentifierAttribute.cs
- ControlBuilderAttribute.cs
- TablePattern.cs
- RealizedColumnsBlock.cs
- ReflectEventDescriptor.cs
- DESCryptoServiceProvider.cs
- TemplateApplicationHelper.cs
- XPathParser.cs
- CommandHelper.cs
- MediaElementAutomationPeer.cs
- DefaultValueTypeConverter.cs
- DrawListViewItemEventArgs.cs
- SetMemberBinder.cs
- RijndaelManagedTransform.cs
- ModulesEntry.cs
- RenamedEventArgs.cs
- CounterCreationData.cs
- Vector3D.cs
- DataGridColumnsPage.cs
- MenuItemStyle.cs
- SqlStatistics.cs
- DataContext.cs
- FormConverter.cs
- PropertyCollection.cs
- WebServiceHandlerFactory.cs
- ProofTokenCryptoHandle.cs
- ApplicationServicesHostFactory.cs
- Int32Converter.cs
- DataGridViewImageCell.cs
- StorageEndPropertyMapping.cs
- QilLiteral.cs
- AspNetSynchronizationContext.cs
- NativeMethods.cs
- VerificationException.cs
- ServicePointManagerElement.cs
- SymbolMethod.cs
- xsdvalidator.cs
- XmlFormatWriterGenerator.cs
- EnvironmentPermission.cs
- RemotingConfigParser.cs
- MimeMapping.cs
- ReturnValue.cs
- HitTestWithGeometryDrawingContextWalker.cs
- WindowsIdentity.cs
- EmptyEnumerable.cs
- HttpPostClientProtocol.cs
- ResourceCategoryAttribute.cs
- BaseResourcesBuildProvider.cs
- TreeViewDesigner.cs
- EntityModelBuildProvider.cs
- AnimationStorage.cs
- ConditionalAttribute.cs
- RemoteWebConfigurationHost.cs
- _LazyAsyncResult.cs
- PingOptions.cs
- TreeBuilderBamlTranslator.cs
- SessionParameter.cs
- ExtentKey.cs
- SimpleTypeResolver.cs
- Region.cs
- ParameterBinding.cs
- DataObjectCopyingEventArgs.cs
- ReadOnlyCollectionBase.cs
- Symbol.cs
- SendActivityDesignerTheme.cs
- AncillaryOps.cs
- ScrollViewerAutomationPeer.cs
- UnaryNode.cs
- WCFServiceClientProxyGenerator.cs
- SqlInternalConnectionSmi.cs
- RoleManagerEventArgs.cs
- WindowsRebar.cs
- SettingsPropertyCollection.cs
- IDispatchConstantAttribute.cs
- SettingsProviderCollection.cs
- StrongNameUtility.cs
- SqlProcedureAttribute.cs
- SerialReceived.cs
- ServiceHostingEnvironment.cs
- InternalEnumValidatorAttribute.cs
- Vector3DCollectionValueSerializer.cs
- BitmapEffectDrawing.cs
- AlternateViewCollection.cs
- ResourceWriter.cs
- CircleHotSpot.cs
- ResourceReferenceExpression.cs
- DoubleAnimationUsingPath.cs
- WinEventTracker.cs
- ConfigXmlText.cs
- GridViewSelectEventArgs.cs
- TemplateContainer.cs
- DefaultTraceListener.cs