Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / XPath / Internal / DescendantQuery.cs / 1 / DescendantQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; internal class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(this); } } } // 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; using System.Xml; using System.Xml.XPath; using System.Diagnostics; internal class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(this); } } } // 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
- VectorValueSerializer.cs
- DbCommandTree.cs
- SmtpException.cs
- BamlCollectionHolder.cs
- FileChangesMonitor.cs
- XmlUTF8TextReader.cs
- Socket.cs
- CorrelationManager.cs
- DynamicDocumentPaginator.cs
- CqlParserHelpers.cs
- ShadowGlyph.cs
- AssociationEndMember.cs
- CodeParameterDeclarationExpressionCollection.cs
- DataGridCellEditEndingEventArgs.cs
- NullReferenceException.cs
- listitem.cs
- FileDataSourceCache.cs
- ImageCodecInfo.cs
- CustomLineCap.cs
- XmlSchemaGroupRef.cs
- SamlAdvice.cs
- PageSettings.cs
- GridViewSelectEventArgs.cs
- FileRegion.cs
- DataSourceControlBuilder.cs
- WarningException.cs
- FromReply.cs
- PeerObject.cs
- ActivityCollectionMarkupSerializer.cs
- Menu.cs
- ComPersistableTypeElement.cs
- ProfileSettingsCollection.cs
- CharEntityEncoderFallback.cs
- DbDeleteCommandTree.cs
- InkCanvas.cs
- NativeMethods.cs
- _LocalDataStoreMgr.cs
- FlowDocument.cs
- ContextBase.cs
- DataStorage.cs
- XmlSchemaExternal.cs
- ColorMatrix.cs
- CustomPopupPlacement.cs
- RequestCacheEntry.cs
- PenThread.cs
- ScrollViewer.cs
- ContractCodeDomInfo.cs
- CacheVirtualItemsEvent.cs
- PackagePart.cs
- SizeAnimationUsingKeyFrames.cs
- Rectangle.cs
- AdvancedBindingEditor.cs
- DomNameTable.cs
- FtpWebRequest.cs
- GridViewSortEventArgs.cs
- _NegoState.cs
- Menu.cs
- SafeThreadHandle.cs
- StructuralCache.cs
- HtmlHead.cs
- DataGridViewColumn.cs
- MSHTMLHost.cs
- IncrementalCompileAnalyzer.cs
- TransformerConfigurationWizardBase.cs
- WebReferencesBuildProvider.cs
- XsdSchemaFileEditor.cs
- DataRecordObjectView.cs
- AvtEvent.cs
- SqlClientMetaDataCollectionNames.cs
- TypeGeneratedEventArgs.cs
- MouseGestureValueSerializer.cs
- MouseEvent.cs
- EnumerableWrapperWeakToStrong.cs
- TextFindEngine.cs
- ExtractedStateEntry.cs
- WebProxyScriptElement.cs
- DataTableNewRowEvent.cs
- PipelineComponent.cs
- SettingsSavedEventArgs.cs
- ZoneButton.cs
- StrongNamePublicKeyBlob.cs
- BitmapSourceSafeMILHandle.cs
- MouseGestureConverter.cs
- CodeTypeParameter.cs
- XmlKeywords.cs
- ScrollableControl.cs
- SQLConvert.cs
- Speller.cs
- DelegatedStream.cs
- WebPartsPersonalizationAuthorization.cs
- DataGrid.cs
- ImpersonateTokenRef.cs
- CodeArrayCreateExpression.cs
- NetCodeGroup.cs
- ToolStripLocationCancelEventArgs.cs
- CustomAttributeBuilder.cs
- ObjectAnimationBase.cs
- SqlProfileProvider.cs
- XmlValidatingReaderImpl.cs
- IndexingContentUnit.cs