Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / XPath / Internal / DescendantQuery.cs / 1 / DescendantQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; internal class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(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.Diagnostics; internal class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(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
- HandleRef.cs
- BuildManagerHost.cs
- Int32Animation.cs
- DynamicDocumentPaginator.cs
- EnvelopedPkcs7.cs
- XsdValidatingReader.cs
- MenuBindingsEditor.cs
- UpdatePanel.cs
- TaskFileService.cs
- SubstitutionList.cs
- DetailsViewDeletedEventArgs.cs
- XmlQualifiedName.cs
- CompiledXpathExpr.cs
- PixelFormat.cs
- XmlUrlResolver.cs
- TransportChannelFactory.cs
- DataKey.cs
- InkCanvasFeedbackAdorner.cs
- ResourceDefaultValueAttribute.cs
- DataGridSortCommandEventArgs.cs
- BinHexEncoding.cs
- HtmlFormParameterWriter.cs
- RegexMatch.cs
- ProviderUtil.cs
- ZoomingMessageFilter.cs
- XmlIlGenerator.cs
- HMAC.cs
- VirtualPath.cs
- ActivityBuilderHelper.cs
- MessageQueuePermission.cs
- ClientApiGenerator.cs
- SecureUICommand.cs
- FormViewCommandEventArgs.cs
- Calendar.cs
- FontFamily.cs
- Queue.cs
- LinqDataSourceContextData.cs
- FormsAuthenticationUser.cs
- ComponentFactoryHelpers.cs
- GridViewColumnCollectionChangedEventArgs.cs
- MasterPageBuildProvider.cs
- CalendarDayButton.cs
- PreservationFileWriter.cs
- HWStack.cs
- RegexRunner.cs
- CompareValidator.cs
- List.cs
- DateTimePicker.cs
- JsonQueryStringConverter.cs
- StringValueSerializer.cs
- SqlReferenceCollection.cs
- ImageMap.cs
- RoleManagerSection.cs
- UpdatePanelTrigger.cs
- BufferBuilder.cs
- SuppressIldasmAttribute.cs
- ExpressionParser.cs
- QuaternionAnimation.cs
- DeviceContext2.cs
- AttributeEmitter.cs
- Pointer.cs
- ResourceProviderFactory.cs
- XslTransform.cs
- EventInfo.cs
- PersonalizationAdministration.cs
- Button.cs
- TokenBasedSet.cs
- SafeNativeMethods.cs
- XmlCharType.cs
- ContextMenu.cs
- PageOrientation.cs
- CollectionViewGroup.cs
- MembershipUser.cs
- GridEntry.cs
- TerminatorSinks.cs
- ScrollBar.cs
- XmlSchemaObjectCollection.cs
- ServiceNameCollection.cs
- LoginUtil.cs
- DelayedRegex.cs
- ProfileGroupSettingsCollection.cs
- XPathNavigator.cs
- WebPartTransformerCollection.cs
- SubqueryRules.cs
- ProfileParameter.cs
- HitTestDrawingContextWalker.cs
- SqlClientWrapperSmiStreamChars.cs
- ProxyAttribute.cs
- OrderedDictionaryStateHelper.cs
- BrowserCapabilitiesFactory.cs
- DbCommandDefinition.cs
- TrustSection.cs
- LayoutEngine.cs
- PathFigure.cs
- DrawingDrawingContext.cs
- VirtualPathUtility.cs
- PermissionAttributes.cs
- AccessViolationException.cs
- XmlReflectionImporter.cs
- SqlPersonalizationProvider.cs