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
- FunctionParameter.cs
- PerformanceCounterPermissionAttribute.cs
- DesignTimeTemplateParser.cs
- IntegerValidatorAttribute.cs
- X509UI.cs
- SoapAttributes.cs
- DesignerValidationSummaryAdapter.cs
- FormParameter.cs
- DescendentsWalkerBase.cs
- DockPattern.cs
- WindowsRegion.cs
- httpapplicationstate.cs
- FrameworkElement.cs
- DataGridCaption.cs
- GestureRecognizer.cs
- OpacityConverter.cs
- BrowserTree.cs
- PasswordRecovery.cs
- DataGridRow.cs
- ObjectQuery_EntitySqlExtensions.cs
- StagingAreaInputItem.cs
- HtmlElement.cs
- LineInfo.cs
- ArcSegment.cs
- _NegoStream.cs
- StateManagedCollection.cs
- ColorConvertedBitmap.cs
- EncoderExceptionFallback.cs
- RangeValidator.cs
- WebPartVerbsEventArgs.cs
- EntityDataSourceContainerNameItem.cs
- DragEventArgs.cs
- LocalsItemDescription.cs
- TransactionManager.cs
- HttpContext.cs
- ClassHandlersStore.cs
- AppendHelper.cs
- DescendentsWalker.cs
- EntityReference.cs
- PrintPageEvent.cs
- tooltip.cs
- LocalizabilityAttribute.cs
- SqlFunctions.cs
- MatrixKeyFrameCollection.cs
- ToolTipAutomationPeer.cs
- StrongName.cs
- IntSecurity.cs
- AppDomainCompilerProxy.cs
- ChtmlTextWriter.cs
- StrongNameUtility.cs
- Int32Collection.cs
- documentation.cs
- GridViewCommandEventArgs.cs
- Calendar.cs
- ExpandCollapsePattern.cs
- PolyLineSegment.cs
- BamlReader.cs
- TextTabProperties.cs
- GlyphingCache.cs
- BoolExpressionVisitors.cs
- ExpressionParser.cs
- EventLogPermissionEntry.cs
- WebPartDisplayModeEventArgs.cs
- CompilerCollection.cs
- ContentTextAutomationPeer.cs
- DataGridRowAutomationPeer.cs
- GlyphRunDrawing.cs
- GPRECT.cs
- DataServiceHostFactory.cs
- DbModificationClause.cs
- _SSPISessionCache.cs
- Rule.cs
- ProxyAttribute.cs
- IInstanceContextProvider.cs
- AuthenticationManager.cs
- BaseParaClient.cs
- AsymmetricSignatureDeformatter.cs
- DataTableNewRowEvent.cs
- SystemColors.cs
- AnimationClock.cs
- SecurityPermission.cs
- SoapEnumAttribute.cs
- ExpressionBuilderContext.cs
- ReservationCollection.cs
- SHA256Managed.cs
- NameObjectCollectionBase.cs
- CollectionContainer.cs
- DataGridViewBand.cs
- ButtonFieldBase.cs
- DocumentApplication.cs
- X509SecurityTokenProvider.cs
- DependentList.cs
- ListControlConvertEventArgs.cs
- ErrorView.xaml.cs
- TouchFrameEventArgs.cs
- WindowsRichEditRange.cs
- ElementUtil.cs
- AnnotationMap.cs
- RecognitionResult.cs
- _Events.cs