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
- BitmapMetadataBlob.cs
- WebPartActionVerb.cs
- ApplicationManager.cs
- CodeThrowExceptionStatement.cs
- DataService.cs
- HandleValueEditor.cs
- DataGridView.cs
- ReadWriteControlDesigner.cs
- DataTableTypeConverter.cs
- DependentTransaction.cs
- ValidationEventArgs.cs
- BitmapPalettes.cs
- EntityObject.cs
- ReferentialConstraintRoleElement.cs
- StringFormat.cs
- XmlCharCheckingWriter.cs
- Expander.cs
- ManifestBasedResourceGroveler.cs
- ItemAutomationPeer.cs
- unitconverter.cs
- ImmComposition.cs
- _HeaderInfo.cs
- DeploymentExceptionMapper.cs
- ViewGenerator.cs
- HealthMonitoringSectionHelper.cs
- documentsequencetextview.cs
- TreeBuilderXamlTranslator.cs
- ConnectionPoint.cs
- RepeatInfo.cs
- ChtmlCommandAdapter.cs
- ValidatingReaderNodeData.cs
- DesignerCalendarAdapter.cs
- DragCompletedEventArgs.cs
- AnnotationComponentChooser.cs
- figurelengthconverter.cs
- Model3DGroup.cs
- DetailsViewInsertedEventArgs.cs
- ComplexBindingPropertiesAttribute.cs
- CounterNameConverter.cs
- IisTraceWebEventProvider.cs
- BrushConverter.cs
- SocketPermission.cs
- CompilationUtil.cs
- HandoffBehavior.cs
- LongValidatorAttribute.cs
- Journal.cs
- MembershipUser.cs
- ComAdminWrapper.cs
- LocalClientSecuritySettingsElement.cs
- MarshalByRefObject.cs
- ServiceThrottlingBehavior.cs
- ExtendedProtectionPolicyElement.cs
- TextControlDesigner.cs
- EntitySetBaseCollection.cs
- FixedPageStructure.cs
- AssemblyEvidenceFactory.cs
- DomNameTable.cs
- CopyOnWriteList.cs
- cookie.cs
- GZipObjectSerializer.cs
- ModelUIElement3D.cs
- InteropAutomationProvider.cs
- ProfileGroupSettingsCollection.cs
- RepeatButton.cs
- ErrorWrapper.cs
- SmtpDigestAuthenticationModule.cs
- TextBoxBase.cs
- DbConnectionHelper.cs
- NetworkCredential.cs
- ScriptControl.cs
- Drawing.cs
- CompilationRelaxations.cs
- UpdateTranslator.cs
- XmlSchemaIdentityConstraint.cs
- SqlNodeTypeOperators.cs
- AutoResizedEvent.cs
- ToolStripPanelRow.cs
- TypeElementCollection.cs
- CompletedAsyncResult.cs
- CorruptingExceptionCommon.cs
- ComEventsInfo.cs
- GroupDescription.cs
- GridView.cs
- IndentTextWriter.cs
- RowUpdatingEventArgs.cs
- DataConnectionHelper.cs
- ListViewInsertEventArgs.cs
- ThreadAttributes.cs
- FacetEnabledSchemaElement.cs
- XmlNodeList.cs
- WebServiceEndpoint.cs
- SpinWait.cs
- connectionpool.cs
- VBIdentifierTrimConverter.cs
- KernelTypeValidation.cs
- ScriptReferenceEventArgs.cs
- ScriptReferenceBase.cs
- XPSSignatureDefinition.cs
- DataSourceXmlClassAttribute.cs
- HandlerFactoryCache.cs