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 / 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
- BackStopAuthenticationModule.cs
- ImageSourceConverter.cs
- CategoryValueConverter.cs
- ParserContext.cs
- EnumerableCollectionView.cs
- InArgumentConverter.cs
- TextBoxAutoCompleteSourceConverter.cs
- BaseDataBoundControl.cs
- Substitution.cs
- ImageMapEventArgs.cs
- BuildProvider.cs
- Rijndael.cs
- SourceLocation.cs
- StylusEventArgs.cs
- VirtualizingPanel.cs
- Zone.cs
- TerminatorSinks.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PresentationTraceSources.cs
- DrawingContext.cs
- DictionaryKeyPropertyAttribute.cs
- DataGridViewRowHeaderCell.cs
- WebPartTransformer.cs
- WorkflowPageSetupDialog.cs
- XmlSchemaAny.cs
- UserThread.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- DependencyPropertyDescriptor.cs
- CheckableControlBaseAdapter.cs
- SponsorHelper.cs
- Transform.cs
- StorageRoot.cs
- RtfNavigator.cs
- MaskInputRejectedEventArgs.cs
- TransformProviderWrapper.cs
- UserNameSecurityTokenParameters.cs
- Tablet.cs
- XmlUTF8TextReader.cs
- DelayedRegex.cs
- SlipBehavior.cs
- SystemDropShadowChrome.cs
- ProviderUtil.cs
- CqlWriter.cs
- BitmapData.cs
- IisTraceWebEventProvider.cs
- ReadOnlyDataSourceView.cs
- Bold.cs
- HtmlTable.cs
- MulticastDelegate.cs
- AspNetHostingPermission.cs
- RegisteredArrayDeclaration.cs
- PropertySegmentSerializationProvider.cs
- XmlDictionaryReader.cs
- ChangePassword.cs
- CFStream.cs
- ErrorLog.cs
- IdentityNotMappedException.cs
- ReflectionTypeLoadException.cs
- DesignerDataTable.cs
- ResourceAttributes.cs
- Drawing.cs
- OpenFileDialog.cs
- UriScheme.cs
- SqlDataSource.cs
- ConnectorDragDropGlyph.cs
- FormCollection.cs
- InvalidPropValue.cs
- EventRecordWrittenEventArgs.cs
- RichTextBoxConstants.cs
- ListViewDeletedEventArgs.cs
- GuidConverter.cs
- WindowsFormsLinkLabel.cs
- FilterEventArgs.cs
- EntityCommandCompilationException.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- XmlNodeReader.cs
- ThreadSafeList.cs
- path.cs
- XmlDataProvider.cs
- LinearKeyFrames.cs
- ChoiceConverter.cs
- Stylus.cs
- ServicePoint.cs
- CodeTypeConstructor.cs
- InheritanceAttribute.cs
- CompoundFileStreamReference.cs
- SoapExtensionStream.cs
- PersistChildrenAttribute.cs
- RegexParser.cs
- StringDictionary.cs
- PathFigure.cs
- ChildrenQuery.cs
- ArrayElementGridEntry.cs
- DataTemplateSelector.cs
- WebPartUserCapability.cs
- Process.cs
- ObservableCollectionDefaultValueFactory.cs
- StylusPointCollection.cs
- DeferredReference.cs
- SecurityPermission.cs