Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 3 / 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
- CommandHelpers.cs
- PhonemeEventArgs.cs
- UnionQueryOperator.cs
- MexTcpBindingCollectionElement.cs
- TrustLevelCollection.cs
- JournalEntryListConverter.cs
- CorrelationTokenInvalidatedHandler.cs
- BuildManager.cs
- SchemaNotation.cs
- PerspectiveCamera.cs
- CompositeActivityCodeGenerator.cs
- AssociationSetMetadata.cs
- InkPresenterAutomationPeer.cs
- BitmapFrameEncode.cs
- StyleSheetComponentEditor.cs
- EntityException.cs
- ZeroOpNode.cs
- SplineKeyFrames.cs
- SerializationInfo.cs
- CommandHelpers.cs
- WindowsFormsSynchronizationContext.cs
- ContextStaticAttribute.cs
- GridViewCancelEditEventArgs.cs
- XPathAncestorQuery.cs
- HotSpotCollection.cs
- NameGenerator.cs
- TraceHandler.cs
- ClientRoleProvider.cs
- FixedSOMImage.cs
- ScrollProperties.cs
- ServerIdentity.cs
- SignatureResourcePool.cs
- QuaternionConverter.cs
- ToolStripGrip.cs
- AnnotationService.cs
- EventLogEntry.cs
- TracePayload.cs
- StorageEntityContainerMapping.cs
- DataGridViewElement.cs
- AuthenticateEventArgs.cs
- Vertex.cs
- AxHostDesigner.cs
- ProjectedSlot.cs
- URLString.cs
- CommonDialog.cs
- PageAdapter.cs
- PkcsUtils.cs
- MetafileEditor.cs
- SessionPageStatePersister.cs
- ScriptResourceAttribute.cs
- WindowsMenu.cs
- TreeNodeEventArgs.cs
- SetUserPreferenceRequest.cs
- MethodMessage.cs
- FrameworkElementFactoryMarkupObject.cs
- baseaxisquery.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- LZCodec.cs
- HttpDictionary.cs
- AddingNewEventArgs.cs
- LinkDesigner.cs
- CategoryGridEntry.cs
- XmlSignatureProperties.cs
- KeyboardDevice.cs
- WindowsImpersonationContext.cs
- DeclaredTypeElementCollection.cs
- XmlILIndex.cs
- ParameterCollectionEditor.cs
- MenuCommands.cs
- XPathNodeList.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- DefaultValidator.cs
- Configuration.cs
- ScrollBar.cs
- ReflectionTypeLoadException.cs
- NativeRightsManagementAPIsStructures.cs
- ItemMap.cs
- EventListenerClientSide.cs
- ErrorStyle.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- PackWebRequestFactory.cs
- PathNode.cs
- VirtualDirectoryMappingCollection.cs
- DrawingGroup.cs
- AliasGenerator.cs
- XmlDictionaryString.cs
- OSEnvironmentHelper.cs
- ToolStripSeparator.cs
- EntityReference.cs
- ReturnType.cs
- FlowPanelDesigner.cs
- WebPartEditVerb.cs
- OrderedDictionary.cs
- SchemaElementDecl.cs
- HttpWrapper.cs
- ISFClipboardData.cs
- TypeConverterValueSerializer.cs
- OdbcFactory.cs
- JsonUriDataContract.cs
- Rotation3DAnimationUsingKeyFrames.cs