Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathDescendantIterator.cs / 1 / XPathDescendantIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System.Xml.XPath; internal class XPathDescendantIterator: XPathAxisIterator { private int level = 0; public XPathDescendantIterator(XPathNavigator nav, XPathNodeType type, bool matchSelf) : base(nav, type, matchSelf) {} public XPathDescendantIterator(XPathNavigator nav, string name, string namespaceURI, bool matchSelf) : base(nav, name, namespaceURI, matchSelf) {} public XPathDescendantIterator(XPathDescendantIterator it) : base(it) { this.level = it.level; } public override XPathNodeIterator Clone() { return new XPathDescendantIterator(this); } public override bool MoveNext() { if (first) { first = false; if (matchSelf && Matches) { position = 1; return true; } } while (true) { if (nav.MoveToFirstChild()) { level++; } else { while (true) { if (level == 0) { return false; } if (nav.MoveToNext()) { break; } nav.MoveToParent(); level--; } } if (Matches) { position++; return true; } } } } } // 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.Xml.XPath; internal class XPathDescendantIterator: XPathAxisIterator { private int level = 0; public XPathDescendantIterator(XPathNavigator nav, XPathNodeType type, bool matchSelf) : base(nav, type, matchSelf) {} public XPathDescendantIterator(XPathNavigator nav, string name, string namespaceURI, bool matchSelf) : base(nav, name, namespaceURI, matchSelf) {} public XPathDescendantIterator(XPathDescendantIterator it) : base(it) { this.level = it.level; } public override XPathNodeIterator Clone() { return new XPathDescendantIterator(this); } public override bool MoveNext() { if (first) { first = false; if (matchSelf && Matches) { position = 1; return true; } } while (true) { if (nav.MoveToFirstChild()) { level++; } else { while (true) { if (level == 0) { return false; } if (nav.MoveToNext()) { break; } nav.MoveToParent(); level--; } } if (Matches) { position++; return true; } } } } } // 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
- DivideByZeroException.cs
- ComplusEndpointConfigContainer.cs
- TypedColumnHandler.cs
- SystemInfo.cs
- MatrixTransform3D.cs
- InterleavedZipPartStream.cs
- SizeLimitedCache.cs
- BoundColumn.cs
- MaskedTextBox.cs
- TypeLibraryHelper.cs
- WebPartAddingEventArgs.cs
- _SafeNetHandles.cs
- Sql8ConformanceChecker.cs
- XmlReaderSettings.cs
- Codec.cs
- UnsafeNativeMethodsTablet.cs
- CursorConverter.cs
- TreeIterators.cs
- XmlSchemaAttribute.cs
- PackWebResponse.cs
- SymbolMethod.cs
- ConfigXmlDocument.cs
- DataFormat.cs
- FormsAuthenticationUserCollection.cs
- MultiView.cs
- HandleExceptionArgs.cs
- NotificationContext.cs
- DefaultObjectMappingItemCollection.cs
- UnsafeNativeMethodsPenimc.cs
- SafeFileMappingHandle.cs
- GridViewRowEventArgs.cs
- LinearGradientBrush.cs
- DataListItem.cs
- DBSchemaRow.cs
- TypedRowHandler.cs
- ObjectDisposedException.cs
- SByteStorage.cs
- MultiDataTrigger.cs
- PrintPreviewGraphics.cs
- SafeUserTokenHandle.cs
- XmlExpressionDumper.cs
- SchemaManager.cs
- WorkflowOperationInvoker.cs
- Connector.xaml.cs
- SafeThemeHandle.cs
- ConfigXmlText.cs
- _AcceptOverlappedAsyncResult.cs
- ITextView.cs
- FrameworkTextComposition.cs
- TypeUsageBuilder.cs
- HandleCollector.cs
- Empty.cs
- NamespaceExpr.cs
- MembershipSection.cs
- List.cs
- DetailsViewDesigner.cs
- MergablePropertyAttribute.cs
- ManipulationStartedEventArgs.cs
- DataListItemEventArgs.cs
- ListChangedEventArgs.cs
- ObjectAnimationBase.cs
- CanExecuteRoutedEventArgs.cs
- DocumentEventArgs.cs
- FrameworkElementFactoryMarkupObject.cs
- SystemKeyConverter.cs
- OpCopier.cs
- DateTimePicker.cs
- StreamingContext.cs
- FrameworkReadOnlyPropertyMetadata.cs
- FormViewInsertedEventArgs.cs
- TaskExceptionHolder.cs
- Literal.cs
- SingleTagSectionHandler.cs
- LayoutEditorPart.cs
- DrawingVisualDrawingContext.cs
- AppSettings.cs
- SimpleFileLog.cs
- RedistVersionInfo.cs
- wgx_sdk_version.cs
- SerializationInfo.cs
- SByte.cs
- SchemaElementDecl.cs
- NumericUpDown.cs
- Attributes.cs
- DataFormat.cs
- DataServiceCollectionOfT.cs
- TabItem.cs
- XmlSchemaParticle.cs
- RegistryExceptionHelper.cs
- FloaterParaClient.cs
- DbReferenceCollection.cs
- CultureData.cs
- Delegate.cs
- DataServiceQueryException.cs
- DropDownList.cs
- SecurityTokenAuthenticator.cs
- SystemIcons.cs
- ByteRangeDownloader.cs
- RadialGradientBrush.cs
- DateTimeStorage.cs