Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / ChildrenQuery.cs / 2 / ChildrenQuery.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;
using System.Globalization;
using System.Xml.Xsl;
using System.Collections;
internal class ChildrenQuery : BaseAxisQuery {
XPathNodeIterator iterator = XPathEmptyIterator.Instance;
public ChildrenQuery(Query qyInput, string name, string prefix, XPathNodeType type) : base (qyInput, name, prefix, type) {}
protected ChildrenQuery(ChildrenQuery other) : base(other) {
this.iterator = Clone(other.iterator);
}
public override void Reset() {
iterator = XPathEmptyIterator.Instance;
base.Reset();
}
public override XPathNavigator Advance() {
while (!iterator.MoveNext()) {
XPathNavigator input = qyInput.Advance();
if (input == null) {
return null;
}
if (NameTest) {
if (TypeTest == XPathNodeType.ProcessingInstruction) {
iterator = new IteratorFilter(input.SelectChildren(TypeTest), Name);
} else {
iterator = input.SelectChildren(Name, Namespace);
}
} else {
iterator = input.SelectChildren(TypeTest);
}
position = 0;
}
position ++;
currentNode = iterator.Current;
return currentNode;
} // Advance
public sealed override XPathNavigator MatchNode(XPathNavigator context) {
if (context != null) {
if (matches(context)) {
XPathNavigator temp = context.Clone();
if (temp.NodeType != XPathNodeType.Attribute && temp.MoveToParent()) {
return qyInput.MatchNode(temp);
}
return null;
}
}
return null;
}
public override XPathNodeIterator Clone() { return new ChildrenQuery(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
- PatternMatcher.cs
- Misc.cs
- XmlSerializerSection.cs
- TypeDescriptorFilterService.cs
- Html32TextWriter.cs
- ValidationSummary.cs
- SafeNativeMemoryHandle.cs
- Rules.cs
- StreamResourceInfo.cs
- DataSpaceManager.cs
- ListCardsInFileRequest.cs
- Rotation3DAnimationUsingKeyFrames.cs
- SqlDataSourceDesigner.cs
- RuleProcessor.cs
- GuidConverter.cs
- GetWinFXPath.cs
- BooleanProjectedSlot.cs
- panel.cs
- CounterSample.cs
- XPathBinder.cs
- SegmentInfo.cs
- Int32CollectionValueSerializer.cs
- HTMLTagNameToTypeMapper.cs
- X509Certificate2.cs
- ToolStripLabel.cs
- connectionpool.cs
- HttpModuleCollection.cs
- QilUnary.cs
- EventHandlerList.cs
- RenderData.cs
- AttributeSetAction.cs
- OdbcConnectionOpen.cs
- DocumentOutline.cs
- WebPartExportVerb.cs
- Point3DAnimation.cs
- CompilerCollection.cs
- OdbcHandle.cs
- ExtendedPropertyDescriptor.cs
- ReadOnlyAttribute.cs
- InvalidPropValue.cs
- GridViewUpdatedEventArgs.cs
- DataControlLinkButton.cs
- MemoryMappedViewStream.cs
- DbProviderFactories.cs
- CategoryGridEntry.cs
- ScrollBarAutomationPeer.cs
- SecurityKeyIdentifier.cs
- InputElement.cs
- XMLSchema.cs
- HttpDebugHandler.cs
- DelegatedStream.cs
- Rectangle.cs
- StreamingContext.cs
- ProfilePropertySettings.cs
- ControlEvent.cs
- LinqDataSourceInsertEventArgs.cs
- InputEventArgs.cs
- BamlLocalizabilityResolver.cs
- TextServicesCompartmentContext.cs
- SignatureDescription.cs
- RemotingConfiguration.cs
- HostProtectionException.cs
- AsyncStreamReader.cs
- Transform.cs
- XamlReaderHelper.cs
- NumericUpDown.cs
- ApplicationDirectory.cs
- ContainerSelectorBehavior.cs
- TextTreeInsertElementUndoUnit.cs
- SqlTypesSchemaImporter.cs
- LambdaCompiler.Lambda.cs
- TrackBarRenderer.cs
- ViewDesigner.cs
- ListViewItemEventArgs.cs
- CardSpacePolicyElement.cs
- VisualCollection.cs
- ByteStreamBufferedMessageData.cs
- SetterBase.cs
- HttpServerProtocol.cs
- TokenBasedSet.cs
- RangeValuePattern.cs
- SplineKeyFrames.cs
- RelatedImageListAttribute.cs
- DataControlFieldHeaderCell.cs
- UserControlParser.cs
- ToolboxItemLoader.cs
- CachedTypeface.cs
- TextEditorCharacters.cs
- ZoneMembershipCondition.cs
- BinaryOperationBinder.cs
- SystemWebExtensionsSectionGroup.cs
- Effect.cs
- XmlDocumentFragment.cs
- FileDetails.cs
- SoapAttributes.cs
- EventLogPermissionEntry.cs
- EntityCommandCompilationException.cs
- ToolStripItemEventArgs.cs
- CompilerResults.cs
- CommandBindingCollection.cs