Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / NewXml / TreeIterator.cs / 1305376 / TreeIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- #pragma warning disable 618 // ignore obsolete warning about XmlDataDocument namespace System.Xml { using System.Diagnostics; // Iterates over non-attribute nodes internal sealed class TreeIterator : BaseTreeIterator { private XmlNode nodeTop; private XmlNode currentNode; internal TreeIterator( XmlNode nodeTop ) : base( ((XmlDataDocument)(nodeTop.OwnerDocument)).Mapper ) { Debug.Assert( nodeTop != null ); this.nodeTop = nodeTop; this.currentNode = nodeTop; } internal override void Reset() { currentNode = nodeTop; } internal override XmlNode CurrentNode { get { return currentNode; } } internal override bool Next() { XmlNode nextNode; // Try to move to the first child nextNode = currentNode.FirstChild; // No children, try next sibling if ( nextNode != null ) { currentNode = nextNode; return true; } return NextRight(); } internal override bool NextRight() { // Make sure we do not get past the nodeTop if we call NextRight on a just initialized iterator and nodeTop has no children if ( currentNode == nodeTop ) { currentNode = null; return false; } XmlNode nextNode = currentNode.NextSibling; if ( nextNode != null ) { currentNode = nextNode; return true; } // No next sibling, try the first sibling of from the parent chain nextNode = currentNode; while ( nextNode != nodeTop && nextNode.NextSibling == null ) nextNode = nextNode.ParentNode; if ( nextNode == nodeTop ) { currentNode = null; return false; } currentNode = nextNode.NextSibling; Debug.Assert( currentNode != null ); 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
- RemoteWebConfigurationHostServer.cs
- WebPartMenu.cs
- ClientRoleProvider.cs
- CodeDomDecompiler.cs
- AdCreatedEventArgs.cs
- StateDesigner.LayoutSelectionGlyph.cs
- TdsParserStateObject.cs
- HeaderLabel.cs
- ObjectViewFactory.cs
- KeyToListMap.cs
- CollectionViewGroup.cs
- initElementDictionary.cs
- IssuedTokenClientBehaviorsElement.cs
- MultiTargetingUtil.cs
- DataGridViewCellValueEventArgs.cs
- ExecutedRoutedEventArgs.cs
- FormatterConverter.cs
- CompoundFileStorageReference.cs
- PersistencePipeline.cs
- BitmapEffectrendercontext.cs
- InputLanguage.cs
- XPathNodeIterator.cs
- NetMsmqSecurity.cs
- ApplicationFileParser.cs
- CodeIdentifier.cs
- ServiceThrottle.cs
- XmlPreloadedResolver.cs
- ExceptionUtility.cs
- BuildProviderCollection.cs
- VarRemapper.cs
- HandleCollector.cs
- HttpFileCollection.cs
- PropertyOverridesTypeEditor.cs
- TextEndOfParagraph.cs
- ExpressionPrefixAttribute.cs
- Semaphore.cs
- DesignOnlyAttribute.cs
- FixedFlowMap.cs
- NumberSubstitution.cs
- basevalidator.cs
- ServiceHost.cs
- DBPropSet.cs
- DesignColumnCollection.cs
- CustomExpression.cs
- ImageSourceConverter.cs
- ExpressionDumper.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- BooleanFunctions.cs
- DecoderFallbackWithFailureFlag.cs
- EventSinkHelperWriter.cs
- SubclassTypeValidatorAttribute.cs
- IconHelper.cs
- GcSettings.cs
- DesignerUtility.cs
- RemoteWebConfigurationHostServer.cs
- ToolStripItemRenderEventArgs.cs
- ProgressBarRenderer.cs
- TextElementEditingBehaviorAttribute.cs
- BuildProviderAppliesToAttribute.cs
- EventData.cs
- EdmEntityTypeAttribute.cs
- XmlObjectSerializerReadContextComplex.cs
- AppSettingsExpressionEditor.cs
- Point3D.cs
- SmtpSection.cs
- Graph.cs
- GrammarBuilderRuleRef.cs
- LocatorManager.cs
- GeneralTransform2DTo3DTo2D.cs
- ReachDocumentReferenceCollectionSerializer.cs
- ToolboxItemFilterAttribute.cs
- CqlParser.cs
- DataGridItemEventArgs.cs
- ByteStream.cs
- AstNode.cs
- _SslSessionsCache.cs
- DeleteMemberBinder.cs
- Container.cs
- AdornerDecorator.cs
- HtmlUtf8RawTextWriter.cs
- BindingWorker.cs
- Cell.cs
- OpCodes.cs
- GeometryModel3D.cs
- PersonalizationStateInfoCollection.cs
- EventLogEntryCollection.cs
- TTSEvent.cs
- UIElement.cs
- Hyperlink.cs
- XmlSchemaIdentityConstraint.cs
- DesignerVerb.cs
- AutomationAttributeInfo.cs
- Expressions.cs
- TrustLevel.cs
- MethodBuilder.cs
- ConfigUtil.cs
- GrammarBuilderWildcard.cs
- ToolStripItemClickedEventArgs.cs
- AvtEvent.cs
- SynchronizedDisposablePool.cs