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
- WebPartManager.cs
- CodeTypeDelegate.cs
- FirstMatchCodeGroup.cs
- DataContractSerializerFaultFormatter.cs
- HtmlTableRowCollection.cs
- Transform3DGroup.cs
- UrlAuthorizationModule.cs
- CodeRemoveEventStatement.cs
- Vector.cs
- Win32Exception.cs
- TreeViewHitTestInfo.cs
- SafeCryptoHandles.cs
- AsnEncodedData.cs
- DataRowChangeEvent.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- RemoveStoryboard.cs
- EntityStoreSchemaFilterEntry.cs
- ZoneLinkButton.cs
- RelatedPropertyManager.cs
- Lock.cs
- ObjectDataSourceDesigner.cs
- WorkflowInspectionServices.cs
- AlignmentXValidation.cs
- BaseParaClient.cs
- MetadataArtifactLoader.cs
- BindingSource.cs
- DesignerDataSourceView.cs
- odbcmetadatafactory.cs
- ManagementBaseObject.cs
- DocumentPageTextView.cs
- FormClosedEvent.cs
- TextTreeRootNode.cs
- ContentType.cs
- HitTestParameters3D.cs
- AssemblyAttributesGoHere.cs
- XmlTypeMapping.cs
- ProtectedConfiguration.cs
- DataControlFieldCell.cs
- ValidatingReaderNodeData.cs
- TextServicesHost.cs
- ObjectDataProvider.cs
- KeyValueConfigurationElement.cs
- HttpClientProtocol.cs
- PageThemeBuildProvider.cs
- MethodToken.cs
- SecurityResources.cs
- DBSqlParser.cs
- HtmlForm.cs
- Rotation3D.cs
- MemberExpression.cs
- ProcessStartInfo.cs
- RecognizerInfo.cs
- CrossAppDomainChannel.cs
- CipherData.cs
- AsyncPostBackTrigger.cs
- SaveFileDialogDesigner.cs
- KnownBoxes.cs
- HelpPage.cs
- ScriptResourceAttribute.cs
- ClientUriBehavior.cs
- IpcChannel.cs
- DateTimePicker.cs
- HtmlInputCheckBox.cs
- ToolStripHighContrastRenderer.cs
- WorkItem.cs
- KeyNotFoundException.cs
- ThicknessAnimation.cs
- HttpCacheParams.cs
- RIPEMD160.cs
- StrongNameIdentityPermission.cs
- DefaultParameterValueAttribute.cs
- BCryptNative.cs
- SecurityTokenParameters.cs
- RenamedEventArgs.cs
- Literal.cs
- SqlDataSourceEnumerator.cs
- DiffuseMaterial.cs
- tooltip.cs
- PageSetupDialog.cs
- TextBoxView.cs
- MouseActionValueSerializer.cs
- FloatSumAggregationOperator.cs
- DropShadowEffect.cs
- RangeValidator.cs
- SqlDataSourceFilteringEventArgs.cs
- ReachDocumentReferenceSerializerAsync.cs
- SoapIgnoreAttribute.cs
- Int32Rect.cs
- IOThreadTimer.cs
- RawTextInputReport.cs
- SerializationUtilities.cs
- Misc.cs
- safemediahandle.cs
- AuthenticationModulesSection.cs
- IImplicitResourceProvider.cs
- ExceptionUtil.cs
- SqlOuterApplyReducer.cs
- TemplateBindingExpression.cs
- Transform3D.cs
- ProfilePropertyNameValidator.cs