Code:
/ FX-1434 / FX-1434 / 1.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
- UDPClient.cs
- TextLineBreak.cs
- RuntimeTrackingProfile.cs
- XPathDescendantIterator.cs
- BasicExpandProvider.cs
- IndicShape.cs
- XmlSchemaSimpleContentRestriction.cs
- WebPartMovingEventArgs.cs
- BindingMemberInfo.cs
- XmlTextWriter.cs
- SoapSchemaMember.cs
- RemotingAttributes.cs
- ManipulationVelocities.cs
- IisTraceWebEventProvider.cs
- VoiceChangeEventArgs.cs
- ConstructorNeedsTagAttribute.cs
- QuaternionAnimationUsingKeyFrames.cs
- CustomMenuItemCollection.cs
- MediaElement.cs
- SemaphoreSecurity.cs
- InfoCardBaseException.cs
- ContourSegment.cs
- Math.cs
- ProjectionPlan.cs
- AttachmentCollection.cs
- AdvancedBindingEditor.cs
- IsolatedStorage.cs
- TextDecorationCollection.cs
- EventSinkActivityDesigner.cs
- XmlLinkedNode.cs
- Shape.cs
- ClientBuildManager.cs
- MediaTimeline.cs
- LinkTarget.cs
- DocumentSequence.cs
- XPathBuilder.cs
- GeneralTransform3D.cs
- EasingKeyFrames.cs
- RelationshipEndCollection.cs
- WebMessageBodyStyleHelper.cs
- ListViewPagedDataSource.cs
- JumpPath.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ConfigurationSettings.cs
- WebPartDeleteVerb.cs
- ReflectEventDescriptor.cs
- XmlSchemaNotation.cs
- DbQueryCommandTree.cs
- GcHandle.cs
- WebServiceMethodData.cs
- ToolStripItemEventArgs.cs
- OdbcFactory.cs
- ScrollableControl.cs
- CodeCommentStatementCollection.cs
- DataTable.cs
- GB18030Encoding.cs
- IndexedString.cs
- WebConfigManager.cs
- DocumentViewerBase.cs
- DesignTimeParseData.cs
- RuleDefinitions.cs
- EqualityComparer.cs
- DPAPIProtectedConfigurationProvider.cs
- RenderingEventArgs.cs
- XomlCompilerError.cs
- ContainerParaClient.cs
- SqlGatherConsumedAliases.cs
- diagnosticsswitches.cs
- OleDbSchemaGuid.cs
- ServiceModelConfigurationElementCollection.cs
- FocusWithinProperty.cs
- ConfigXmlDocument.cs
- GatewayDefinition.cs
- GroupBoxAutomationPeer.cs
- XmlILTrace.cs
- MessageHeaderException.cs
- ComPlusAuthorization.cs
- CheckBoxAutomationPeer.cs
- FilteredReadOnlyMetadataCollection.cs
- _NativeSSPI.cs
- CodeExporter.cs
- ResXFileRef.cs
- SqlClientWrapperSmiStream.cs
- JpegBitmapEncoder.cs
- Rights.cs
- SortDescriptionCollection.cs
- Types.cs
- CommandBindingCollection.cs
- IPEndPoint.cs
- AsyncStreamReader.cs
- ProxyElement.cs
- CodeFieldReferenceExpression.cs
- QilVisitor.cs
- SafeCloseHandleCritical.cs
- DelimitedListTraceListener.cs
- WebPartMovingEventArgs.cs
- SecurityRuntime.cs
- PackageDigitalSignature.cs
- SolidBrush.cs
- AutomationElementIdentifiers.cs