Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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. // //[....] //[....] //[....] //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SkinBuilder.cs
- SymLanguageType.cs
- IdleTimeoutMonitor.cs
- WorkflowNamespace.cs
- ListViewPagedDataSource.cs
- WebEventCodes.cs
- DependencyObjectType.cs
- DeferrableContentConverter.cs
- ColorTranslator.cs
- ContainerControl.cs
- mansign.cs
- TableRowCollection.cs
- PropertyInformation.cs
- ServiceHttpHandlerFactory.cs
- MemberMaps.cs
- Trace.cs
- ReachFixedPageSerializer.cs
- ISO2022Encoding.cs
- CommonRemoteMemoryBlock.cs
- ContainerUIElement3D.cs
- TableCell.cs
- FormsAuthenticationConfiguration.cs
- ScriptDescriptor.cs
- LookupBindingPropertiesAttribute.cs
- ReadOnlyTernaryTree.cs
- BodyGlyph.cs
- ResourceReader.cs
- AQNBuilder.cs
- UrlRoutingModule.cs
- TokenFactoryCredential.cs
- EntityCommand.cs
- XmlReaderSettings.cs
- XpsDocumentEvent.cs
- DispatcherExceptionFilterEventArgs.cs
- Scripts.cs
- XmlnsPrefixAttribute.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- IpcServerChannel.cs
- OutgoingWebRequestContext.cs
- ToolStripStatusLabel.cs
- HTMLTextWriter.cs
- WindowsStatusBar.cs
- BindingUtils.cs
- LicenseException.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- ItemsPanelTemplate.cs
- ConfigurationSectionGroup.cs
- ConfigXmlSignificantWhitespace.cs
- SchemaTableOptionalColumn.cs
- ThousandthOfEmRealPoints.cs
- Canvas.cs
- HandlerFactoryWrapper.cs
- GroupItem.cs
- WindowHelperService.cs
- SessionSwitchEventArgs.cs
- DataGridViewBindingCompleteEventArgs.cs
- XmlAttributes.cs
- SqlComparer.cs
- SimpleLine.cs
- EntityClassGenerator.cs
- LinqDataSource.cs
- Hash.cs
- ClientTargetCollection.cs
- BinaryObjectInfo.cs
- DataGridViewImageColumn.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- OuterGlowBitmapEffect.cs
- AmbientLight.cs
- Rijndael.cs
- WebPartMovingEventArgs.cs
- ZipIOLocalFileDataDescriptor.cs
- PropertyItem.cs
- ValidationHelper.cs
- FilterException.cs
- KeyNameIdentifierClause.cs
- SubtreeProcessor.cs
- MsmqAppDomainProtocolHandler.cs
- DetailsViewInsertEventArgs.cs
- ProviderSettings.cs
- LocalizationComments.cs
- PieceNameHelper.cs
- DesignerTransaction.cs
- Timer.cs
- Form.cs
- DayRenderEvent.cs
- LineGeometry.cs
- PtsPage.cs
- QueryComponents.cs
- CompressionTransform.cs
- AuthorizationRule.cs
- DelegatedStream.cs
- COM2ColorConverter.cs
- TypeHelpers.cs
- KeyInstance.cs
- ComplexPropertyEntry.cs
- SystemException.cs
- ContentWrapperAttribute.cs
- SafeCryptHandles.cs
- Rotation3DAnimation.cs
- AttributeCollection.cs