Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / NewXml / TreeIterator.cs / 1 / TreeIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Xml { using System; using System.Data; 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NamedPipeTransportElement.cs
- LayoutDump.cs
- OrderedDictionaryStateHelper.cs
- XhtmlBasicValidatorAdapter.cs
- DataComponentGenerator.cs
- TreeViewImageIndexConverter.cs
- AdPostCacheSubstitution.cs
- ImagingCache.cs
- ProvidersHelper.cs
- GeometryHitTestResult.cs
- CheckedListBox.cs
- StorageMappingItemCollection.cs
- BitmapEffectInputData.cs
- COAUTHIDENTITY.cs
- PackageRelationship.cs
- Registry.cs
- SerializationEventsCache.cs
- XsltSettings.cs
- SchemaImporterExtensionElement.cs
- Grant.cs
- ProgressChangedEventArgs.cs
- XhtmlBasicCalendarAdapter.cs
- VisualStyleInformation.cs
- ListViewInsertEventArgs.cs
- RowsCopiedEventArgs.cs
- XMLSyntaxException.cs
- HtmlTitle.cs
- ClientSettingsSection.cs
- BamlTreeUpdater.cs
- _SecureChannel.cs
- SnapshotChangeTrackingStrategy.cs
- Utility.cs
- SqlCacheDependency.cs
- DocumentOrderQuery.cs
- AutoGeneratedField.cs
- HttpDebugHandler.cs
- WebDescriptionAttribute.cs
- CodePageEncoding.cs
- Brushes.cs
- BuildProviderCollection.cs
- RangeValidator.cs
- BoundConstants.cs
- XmlSchemaImporter.cs
- InkCanvasSelection.cs
- StringDictionary.cs
- DateTimeOffsetConverter.cs
- CodeDirectionExpression.cs
- PermissionSetEnumerator.cs
- AnalyzedTree.cs
- WizardForm.cs
- Cursor.cs
- ClientFormsIdentity.cs
- DeviceOverridableAttribute.cs
- CommandSet.cs
- DynamicMetaObject.cs
- XmlSchemaObject.cs
- WebPartConnectionCollection.cs
- ThreadStartException.cs
- PackagePart.cs
- handlecollector.cs
- ForEachAction.cs
- HtmlTableCell.cs
- TextFormatter.cs
- ActivationProxy.cs
- UnsafeNativeMethods.cs
- XmlUtil.cs
- HiddenFieldPageStatePersister.cs
- ReachNamespaceInfo.cs
- UserControlBuildProvider.cs
- QilPatternVisitor.cs
- XPathBuilder.cs
- HttpSocketManager.cs
- mansign.cs
- WmlListAdapter.cs
- WebServiceParameterData.cs
- TypeForwardedToAttribute.cs
- KnownIds.cs
- TextDpi.cs
- CheckableControlBaseAdapter.cs
- ClientType.cs
- InitializerFacet.cs
- DataGridViewRowCollection.cs
- PageTheme.cs
- KeyValuePair.cs
- SizeAnimationBase.cs
- SecureEnvironment.cs
- NotImplementedException.cs
- RemotingConfiguration.cs
- NumericUpDownAcceleration.cs
- XMLDiffLoader.cs
- FactoryGenerator.cs
- ImageList.cs
- ColorTransform.cs
- CodeTryCatchFinallyStatement.cs
- WindowsListViewGroupSubsetLink.cs
- EnlistmentState.cs
- ElementAtQueryOperator.cs
- Graphics.cs
- SqlCaseSimplifier.cs
- ObjectSecurity.cs