Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / ChildrenQuery.cs / 1 / 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
- FlowDocumentReaderAutomationPeer.cs
- SequentialWorkflowHeaderFooter.cs
- SqlRemoveConstantOrderBy.cs
- IntSecurity.cs
- QueryCacheManager.cs
- WebPartExportVerb.cs
- InputScopeManager.cs
- SelectionRangeConverter.cs
- WmiPutTraceRecord.cs
- TargetControlTypeCache.cs
- TypeNameConverter.cs
- SqlOuterApplyReducer.cs
- XmlC14NWriter.cs
- UrlAuthFailedErrorFormatter.cs
- HandlerBase.cs
- XmlNodeList.cs
- RelationshipManager.cs
- TileBrush.cs
- MembershipValidatePasswordEventArgs.cs
- CacheAxisQuery.cs
- FixUp.cs
- ICspAsymmetricAlgorithm.cs
- ISO2022Encoding.cs
- StructuralCache.cs
- SplitterPanel.cs
- TypeBinaryExpression.cs
- ColumnMapVisitor.cs
- WebConvert.cs
- ValidationRuleCollection.cs
- ApplicationSettingsBase.cs
- ViewStateException.cs
- UserValidatedEventArgs.cs
- AnnotationResourceChangedEventArgs.cs
- DateTimePicker.cs
- ELinqQueryState.cs
- DSACryptoServiceProvider.cs
- WebEvents.cs
- DragDeltaEventArgs.cs
- QilStrConcatenator.cs
- ToolStripItem.cs
- figurelength.cs
- Directory.cs
- ComponentCommands.cs
- InArgument.cs
- UdpTransportSettings.cs
- EncodingInfo.cs
- ContextStaticAttribute.cs
- mda.cs
- OdbcConnectionString.cs
- RadioButtonFlatAdapter.cs
- IsolatedStorageException.cs
- VisualTreeUtils.cs
- DrawingGroup.cs
- InvalidPrinterException.cs
- VariableQuery.cs
- VerificationException.cs
- Triangle.cs
- ListViewInsertionMark.cs
- AvtEvent.cs
- ClientReliableChannelBinder.cs
- DeflateStream.cs
- FormViewPagerRow.cs
- GenericEnumConverter.cs
- CheckBoxPopupAdapter.cs
- GeneralTransform3DTo2DTo3D.cs
- WindowsFormsSectionHandler.cs
- Assembly.cs
- EdmToObjectNamespaceMap.cs
- CacheMemory.cs
- SvcMapFileSerializer.cs
- ProfileSection.cs
- GeneralTransform.cs
- ObjectDataSourceStatusEventArgs.cs
- SignatureTargetIdManager.cs
- Task.cs
- BaseConfigurationRecord.cs
- DelegatingTypeDescriptionProvider.cs
- InstancePersistenceCommand.cs
- MethodExpr.cs
- PtsHost.cs
- Attributes.cs
- OSFeature.cs
- DllHostInitializer.cs
- RemotingException.cs
- WebRequestModuleElement.cs
- ShapingWorkspace.cs
- XsltOutput.cs
- FlowPanelDesigner.cs
- HttpContextWrapper.cs
- SecurityDescriptor.cs
- PasswordDeriveBytes.cs
- HMACSHA256.cs
- TypeSystem.cs
- DrawTreeNodeEventArgs.cs
- DbTransaction.cs
- SqlProfileProvider.cs
- WebResourceUtil.cs
- HelpInfo.cs
- SystemInformation.cs
- WrappedIUnknown.cs