Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PropertyDescriptorCollection.cs
- BufferedReadStream.cs
- DrawingAttributes.cs
- AdornerDecorator.cs
- SharingService.cs
- MenuBase.cs
- Grid.cs
- ErrorTableItemStyle.cs
- Choices.cs
- FixedSOMTextRun.cs
- OwnerDrawPropertyBag.cs
- BamlBinaryWriter.cs
- TemplateColumn.cs
- SecurityDescriptor.cs
- UrlPath.cs
- WebPartDescriptionCollection.cs
- IdentityReference.cs
- NotificationContext.cs
- SqlUdtInfo.cs
- sqlnorm.cs
- oledbmetadatacolumnnames.cs
- StatusStrip.cs
- ListViewTableRow.cs
- ViewgenGatekeeper.cs
- CommandHelper.cs
- Emitter.cs
- FontNameConverter.cs
- MachineSettingsSection.cs
- CodeTypeParameter.cs
- SAPIEngineTypes.cs
- Transform.cs
- AngleUtil.cs
- XmlAttributeCache.cs
- XmlComplianceUtil.cs
- CodeConditionStatement.cs
- DefaultDialogButtons.cs
- DocumentReference.cs
- Screen.cs
- DbParameterCollection.cs
- _OverlappedAsyncResult.cs
- HtmlElementEventArgs.cs
- NameValueSectionHandler.cs
- SemanticBasicElement.cs
- ThreadAttributes.cs
- ComplexLine.cs
- SqlNotificationRequest.cs
- XDeferredAxisSource.cs
- TiffBitmapDecoder.cs
- ThemeInfoAttribute.cs
- VirtualDirectoryMappingCollection.cs
- XamlGridLengthSerializer.cs
- RepeatBehavior.cs
- ToolStripRendererSwitcher.cs
- EnumMemberAttribute.cs
- NullableFloatSumAggregationOperator.cs
- SqlDataSourceStatusEventArgs.cs
- HuffModule.cs
- RoutedPropertyChangedEventArgs.cs
- AttributeCollection.cs
- HttpHandlersSection.cs
- TextServicesLoader.cs
- MulticastIPAddressInformationCollection.cs
- WorkflowMarkupSerializationProvider.cs
- CodeMethodInvokeExpression.cs
- XmlNodeComparer.cs
- Blend.cs
- ProviderCommandInfoUtils.cs
- storepermissionattribute.cs
- Geometry3D.cs
- PropertyChangedEventManager.cs
- SessionEndedEventArgs.cs
- CqlLexer.cs
- ClientSideQueueItem.cs
- FtpCachePolicyElement.cs
- XmlCDATASection.cs
- Panel.cs
- FusionWrap.cs
- ValidatorUtils.cs
- SoapCodeExporter.cs
- ModelUIElement3D.cs
- ComponentEditorForm.cs
- Schema.cs
- XmlFormatExtensionPointAttribute.cs
- TableAdapterManagerGenerator.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- HitTestWithPointDrawingContextWalker.cs
- StickyNoteContentControl.cs
- OleAutBinder.cs
- ComboBoxRenderer.cs
- InternalMappingException.cs
- EditorPart.cs
- EmptyStringExpandableObjectConverter.cs
- CompositeDesignerAccessibleObject.cs
- ListInitExpression.cs
- ValidationErrorCollection.cs
- ReservationCollection.cs
- SharedStream.cs
- TraceRecord.cs
- SQLDateTimeStorage.cs
- SplitContainerDesigner.cs