Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- jithelpers.cs
- FaultContractInfo.cs
- ImageSource.cs
- SimpleExpression.cs
- ButtonRenderer.cs
- WebPartDisplayModeEventArgs.cs
- GlyphCache.cs
- METAHEADER.cs
- SqlNodeAnnotation.cs
- HtmlElementCollection.cs
- StorageComplexPropertyMapping.cs
- CommentAction.cs
- LinqDataSourceDeleteEventArgs.cs
- ScriptReferenceBase.cs
- CustomError.cs
- FreezableDefaultValueFactory.cs
- EmptyEnumerator.cs
- Rijndael.cs
- GrammarBuilderRuleRef.cs
- RepeaterItemEventArgs.cs
- ModuleBuilderData.cs
- EntitySet.cs
- UnsafeNativeMethodsMilCoreApi.cs
- TypeDescriptionProviderAttribute.cs
- Shape.cs
- PrimitiveType.cs
- OleDbRowUpdatingEvent.cs
- RegistrationServices.cs
- CompilerErrorCollection.cs
- PersistenceContext.cs
- MaskedTextBoxDesignerActionList.cs
- TitleStyle.cs
- Timer.cs
- XmlLoader.cs
- ChangeInterceptorAttribute.cs
- XmlSchemaParticle.cs
- _ListenerResponseStream.cs
- CssTextWriter.cs
- CacheMemory.cs
- DocumentPageView.cs
- ToolStripPanel.cs
- TextControlDesigner.cs
- DataView.cs
- Normalizer.cs
- TextParagraphProperties.cs
- ScriptHandlerFactory.cs
- ProtocolsConfigurationEntry.cs
- ResizeGrip.cs
- EdmMember.cs
- CharStorage.cs
- FormViewRow.cs
- XmlSchemaCompilationSettings.cs
- DataKey.cs
- StorageComplexTypeMapping.cs
- BinaryMessageFormatter.cs
- templategroup.cs
- _FixedSizeReader.cs
- OleDbSchemaGuid.cs
- InputScopeAttribute.cs
- MachineKeySection.cs
- DefaultEventAttribute.cs
- GlobalizationAssembly.cs
- TimeoutConverter.cs
- Control.cs
- AsyncPostBackErrorEventArgs.cs
- MailAddressCollection.cs
- ColorAnimationUsingKeyFrames.cs
- PhysicalFontFamily.cs
- WindowsFormsEditorServiceHelper.cs
- ActivityInstanceReference.cs
- SQLResource.cs
- DefaultPrintController.cs
- CachedBitmap.cs
- EventLogSession.cs
- DependencyPropertyConverter.cs
- WebPartAddingEventArgs.cs
- ConvertTextFrag.cs
- ExpressionBuilderCollection.cs
- SecurityKeyIdentifier.cs
- Point3DConverter.cs
- UnsignedPublishLicense.cs
- HeaderCollection.cs
- SpStreamWrapper.cs
- ProfileParameter.cs
- TableCell.cs
- XPathNavigator.cs
- StatusBar.cs
- SqlUserDefinedAggregateAttribute.cs
- SecurityPolicySection.cs
- XmlILCommand.cs
- TextEditorTables.cs
- ReadOnlyHierarchicalDataSource.cs
- XmlEnumAttribute.cs
- DesignerRegionCollection.cs
- ControlCommandSet.cs
- Filter.cs
- RadioButtonAutomationPeer.cs
- WeakEventManager.cs
- RequiredFieldValidator.cs
- RuntimeResourceSet.cs