Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / ChildrenQuery.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FamilyTypefaceCollection.cs
- Nullable.cs
- MappingItemCollection.cs
- DrawingContextWalker.cs
- PropertyManager.cs
- ClientSettingsProvider.cs
- WriterOutput.cs
- FormViewModeEventArgs.cs
- _ProxyRegBlob.cs
- RenamedEventArgs.cs
- InlineCollection.cs
- ContentOperations.cs
- CommandHelpers.cs
- Keyboard.cs
- ExcCanonicalXml.cs
- DockAndAnchorLayout.cs
- PerfCounters.cs
- Row.cs
- SystemIcmpV4Statistics.cs
- PhysicalAddress.cs
- TextBox.cs
- DispatchRuntime.cs
- SchemaManager.cs
- ControlUtil.cs
- OSFeature.cs
- XmlNodeReader.cs
- ImageList.cs
- WindowsIPAddress.cs
- AnnotationObservableCollection.cs
- Automation.cs
- SHA1.cs
- linebase.cs
- GridEntryCollection.cs
- Floater.cs
- Token.cs
- NameSpaceEvent.cs
- TransportListener.cs
- RangeBaseAutomationPeer.cs
- PnrpPermission.cs
- TransformationRules.cs
- _RegBlobWebProxyDataBuilder.cs
- RepeaterItem.cs
- Merger.cs
- SocketElement.cs
- ScriptMethodAttribute.cs
- StrongNameSignatureInformation.cs
- HintTextConverter.cs
- WebPartConnectionsDisconnectVerb.cs
- CachedFontFace.cs
- ObjectFullSpanRewriter.cs
- DBSqlParserTableCollection.cs
- ReceiveCompletedEventArgs.cs
- MetadataCache.cs
- DataGridViewRowCancelEventArgs.cs
- ReaderWriterLockWrapper.cs
- DataBoundControlHelper.cs
- WebPartCloseVerb.cs
- UnsafeNativeMethodsCLR.cs
- PasswordBox.cs
- LoginUtil.cs
- RoutedEventConverter.cs
- CapabilitiesSection.cs
- DataColumnCollection.cs
- Constraint.cs
- MetadataCacheItem.cs
- ConfigurationElementCollection.cs
- counter.cs
- DesignTimeParseData.cs
- XPathNodeInfoAtom.cs
- XamlReaderHelper.cs
- ClrPerspective.cs
- SymmetricKeyWrap.cs
- MenuTracker.cs
- BamlMapTable.cs
- HitTestWithGeometryDrawingContextWalker.cs
- TextDecoration.cs
- SchemaNotation.cs
- x509utils.cs
- WebBrowserProgressChangedEventHandler.cs
- ProcessModuleCollection.cs
- SyndicationSerializer.cs
- StyleCollectionEditor.cs
- ExtensionQuery.cs
- HScrollProperties.cs
- FloaterParagraph.cs
- StringFreezingAttribute.cs
- SafeViewOfFileHandle.cs
- X509CertificateValidator.cs
- LayoutTable.cs
- DataGridViewComboBoxColumn.cs
- XmlIncludeAttribute.cs
- LineSegment.cs
- String.cs
- NonDualMessageSecurityOverHttpElement.cs
- TabletCollection.cs
- ComponentCollection.cs
- DataGridClipboardHelper.cs
- IdentifierCollection.cs
- DateTimeOffsetAdapter.cs
- ProfilePropertySettingsCollection.cs