Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathDescendantIterator.cs / 1305376 / 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
- TextSpanModifier.cs
- ProcessInfo.cs
- SerializationFieldInfo.cs
- ImmComposition.cs
- DbXmlEnabledProviderManifest.cs
- SystemWebExtensionsSectionGroup.cs
- DataGridViewButtonColumn.cs
- Logging.cs
- RadioButtonAutomationPeer.cs
- FontInfo.cs
- ProxyManager.cs
- DriveNotFoundException.cs
- XmlSchema.cs
- ContextStack.cs
- CollectionChangeEventArgs.cs
- XmlSortKey.cs
- SplitterEvent.cs
- SqlDataSourceEnumerator.cs
- SqlTrackingService.cs
- GroupBoxRenderer.cs
- IncrementalCompileAnalyzer.cs
- XmlNamedNodeMap.cs
- XmlSchemaAttributeGroupRef.cs
- TextParagraph.cs
- PropertyEmitter.cs
- VisualStyleElement.cs
- PasswordPropertyTextAttribute.cs
- SQLBoolean.cs
- WaveHeader.cs
- _TimerThread.cs
- DesignerDataConnection.cs
- X509KeyIdentifierClauseType.cs
- RowToFieldTransformer.cs
- DataGridState.cs
- NetworkAddressChange.cs
- EntityDataSourceSelectedEventArgs.cs
- UserValidatedEventArgs.cs
- CursorConverter.cs
- DictionaryItemsCollection.cs
- FormViewDeleteEventArgs.cs
- CodeDirectoryCompiler.cs
- SqlXmlStorage.cs
- PreviewPrintController.cs
- IOException.cs
- ActivityBuilderHelper.cs
- StringFunctions.cs
- PointValueSerializer.cs
- DefaultSettingsSection.cs
- ProtocolsConfigurationHandler.cs
- RuntimeConfigurationRecord.cs
- PeerTransportElement.cs
- WsatServiceAddress.cs
- JumpTask.cs
- InvokePattern.cs
- Viewport3DAutomationPeer.cs
- WmlControlAdapter.cs
- OracleInfoMessageEventArgs.cs
- WsrmTraceRecord.cs
- Literal.cs
- PackWebResponse.cs
- SerializationException.cs
- InheritedPropertyDescriptor.cs
- HeaderCollection.cs
- TextTreeTextBlock.cs
- EmptyStringExpandableObjectConverter.cs
- ColorAnimationBase.cs
- DesignerResources.cs
- NotImplementedException.cs
- BuildProviderAppliesToAttribute.cs
- NamespaceInfo.cs
- Boolean.cs
- TdsParserHelperClasses.cs
- XAMLParseException.cs
- ActivityDesigner.cs
- GPStream.cs
- FirstMatchCodeGroup.cs
- BindableTemplateBuilder.cs
- ListenerChannelContext.cs
- BuildDependencySet.cs
- _CacheStreams.cs
- ExtractedStateEntry.cs
- WebPartsSection.cs
- EntityDesignPluralizationHandler.cs
- Win32.cs
- DataException.cs
- SizeChangedEventArgs.cs
- Attributes.cs
- DbConnectionPool.cs
- WMIGenerator.cs
- ArrayTypeMismatchException.cs
- ResourceReferenceKeyNotFoundException.cs
- DynamicPhysicalDiscoSearcher.cs
- MultiByteCodec.cs
- XmlIlVisitor.cs
- FontResourceCache.cs
- XDeferredAxisSource.cs
- TextFormatterHost.cs
- UnionQueryOperator.cs
- Helper.cs
- Parallel.cs