Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / followingquery.cs / 1305376 / followingquery.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 sealed class FollowingQuery : BaseAxisQuery { private XPathNavigator input; private XPathNodeIterator iterator; public FollowingQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) {} private FollowingQuery(FollowingQuery other) : base(other) { this.input = Clone(other.input); this.iterator = Clone(other.iterator); } public override void Reset() { iterator = null; base.Reset(); } public override XPathNavigator Advance() { if (iterator == null) { input = qyInput.Advance(); if (input == null) { return null; } XPathNavigator prev; do { prev = input.Clone(); input = qyInput.Advance(); } while (prev.IsDescendant(input)); input = prev; iterator = XPathEmptyIterator.Instance; } while (! iterator.MoveNext()) { bool matchSelf; if (input.NodeType == XPathNodeType.Attribute || input.NodeType == XPathNodeType.Namespace) { input.MoveToParent(); matchSelf = false; } else { while (! input.MoveToNext()) { if (! input.MoveToParent()) { return null; } } matchSelf = true; } if (NameTest) { iterator = input.SelectDescendants(Name, Namespace, matchSelf); } else { iterator = input.SelectDescendants(TypeTest, matchSelf); } } position++; currentNode = iterator.Current; return currentNode; } public override XPathNodeIterator Clone() { return new FollowingQuery(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
- TreeViewImageIndexConverter.cs
- ConfigurationElementCollection.cs
- TableItemStyle.cs
- DuplicateContext.cs
- XmlDocumentType.cs
- MessageBox.cs
- QueryContinueDragEvent.cs
- DefaultAsyncDataDispatcher.cs
- SystemWebSectionGroup.cs
- CFStream.cs
- ColumnMapProcessor.cs
- DiscriminatorMap.cs
- ObjectConverter.cs
- SharedPersonalizationStateInfo.cs
- OdbcDataAdapter.cs
- AuditLog.cs
- IPHostEntry.cs
- XamlUtilities.cs
- PartialClassGenerationTask.cs
- SecurityContextCookieSerializer.cs
- SamlAction.cs
- ToolStripRenderer.cs
- DataGridViewCell.cs
- BlockingCollection.cs
- PackWebResponse.cs
- DocumentPageView.cs
- SignedInfo.cs
- PromptEventArgs.cs
- DataGridViewRowEventArgs.cs
- ObjectCloneHelper.cs
- PerfProviderCollection.cs
- TextFragmentEngine.cs
- FrameworkContentElement.cs
- HGlobalSafeHandle.cs
- HttpProfileBase.cs
- ProfileBuildProvider.cs
- DecoderExceptionFallback.cs
- StorageAssociationSetMapping.cs
- Rotation3D.cs
- MessageQueueKey.cs
- StatusBarItem.cs
- SubordinateTransaction.cs
- ZipIOCentralDirectoryBlock.cs
- LinqDataSourceView.cs
- XmlSchemaGroupRef.cs
- StylusCollection.cs
- BorderSidesEditor.cs
- StackBuilderSink.cs
- PropertyManager.cs
- PointConverter.cs
- CounterCreationDataCollection.cs
- QilPatternFactory.cs
- Propagator.Evaluator.cs
- WindowInteropHelper.cs
- CodeTypeReferenceExpression.cs
- AuthenticationModulesSection.cs
- ListViewItemEventArgs.cs
- GenerateScriptTypeAttribute.cs
- HighContrastHelper.cs
- WebPartDisplayModeCollection.cs
- EmptyEnumerator.cs
- ByteArrayHelperWithString.cs
- UdpChannelFactory.cs
- HtmlHistory.cs
- ProgressBarHighlightConverter.cs
- MultiByteCodec.cs
- GiveFeedbackEventArgs.cs
- ListView.cs
- Triplet.cs
- TimeSpanSecondsConverter.cs
- TableLayoutRowStyleCollection.cs
- AtomServiceDocumentSerializer.cs
- ControlTemplate.cs
- KeyFrames.cs
- TableSectionStyle.cs
- GroupItem.cs
- BinaryObjectInfo.cs
- HtmlTextViewAdapter.cs
- AbandonedMutexException.cs
- RectangleGeometry.cs
- PointConverter.cs
- TextServicesPropertyRanges.cs
- TextComposition.cs
- translator.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- FileDialog.cs
- ModifiableIteratorCollection.cs
- XmlWhitespace.cs
- FixedSOMLineRanges.cs
- Brush.cs
- RequestStatusBarUpdateEventArgs.cs
- EditingCommands.cs
- SingletonInstanceContextProvider.cs
- CharacterString.cs
- AutomationTextAttribute.cs
- ErrorEventArgs.cs
- CqlQuery.cs
- ImageSource.cs
- DataGridViewSelectedRowCollection.cs
- StackSpiller.Temps.cs