Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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.
//
// [....]
//-----------------------------------------------------------------------------
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
- LabelAutomationPeer.cs
- AsymmetricSignatureFormatter.cs
- XmlNamespaceDeclarationsAttribute.cs
- ButtonBaseAutomationPeer.cs
- CodeArrayCreateExpression.cs
- Encoder.cs
- HostingEnvironmentException.cs
- IconConverter.cs
- PrivilegeNotHeldException.cs
- EntitySqlQueryCacheEntry.cs
- ServiceEndpointElementCollection.cs
- EntryWrittenEventArgs.cs
- DataObjectEventArgs.cs
- Accessible.cs
- TrackBar.cs
- SQLDouble.cs
- AppDomain.cs
- ClientBuildManager.cs
- LayoutInformation.cs
- Accessible.cs
- SurrogateEncoder.cs
- ValueType.cs
- OdbcEnvironment.cs
- ExpressionBuilder.cs
- HtmlImage.cs
- ResourceReader.cs
- Normalization.cs
- ContainerUIElement3D.cs
- URLAttribute.cs
- DataGridViewColumnCollectionEditor.cs
- BamlLocalizableResourceKey.cs
- SoapReflectionImporter.cs
- ListBoxItemAutomationPeer.cs
- BamlTreeMap.cs
- XmlAttributeOverrides.cs
- ProgressBarBrushConverter.cs
- coordinatorfactory.cs
- WebMessageEncodingElement.cs
- MediaContextNotificationWindow.cs
- UnhandledExceptionEventArgs.cs
- TrackingProfileSerializer.cs
- PeerContact.cs
- OutputCacheProfile.cs
- Queue.cs
- Scalars.cs
- DocumentScope.cs
- SiteMapHierarchicalDataSourceView.cs
- TransformerInfo.cs
- StylusPointPropertyId.cs
- Positioning.cs
- UInt32Storage.cs
- WebPartConnectionCollection.cs
- MonitorWrapper.cs
- SelectionManager.cs
- Int16Storage.cs
- SoapSchemaExporter.cs
- XmlValidatingReader.cs
- PackWebResponse.cs
- ProcessInfo.cs
- XmlFormatReaderGenerator.cs
- ParameterCollection.cs
- WsdlInspector.cs
- ImportRequest.cs
- DrawingBrush.cs
- ProfessionalColors.cs
- FactoryId.cs
- MouseEventArgs.cs
- MultiViewDesigner.cs
- TimeSpanMinutesConverter.cs
- DataTablePropertyDescriptor.cs
- ExecutionScope.cs
- BamlReader.cs
- StylusPointPropertyId.cs
- XmlReturnReader.cs
- DataError.cs
- ReadOnlyDictionary.cs
- SymbolDocumentGenerator.cs
- LogReservationCollection.cs
- IsolatedStoragePermission.cs
- XmlSerializationReader.cs
- RegexTree.cs
- PropertyValueUIItem.cs
- xml.cs
- AppDomainProtocolHandler.cs
- UnsafeNativeMethodsCLR.cs
- BitmapEffectCollection.cs
- CollectionsUtil.cs
- DataRecordInternal.cs
- AggregateNode.cs
- JsonFormatGeneratorStatics.cs
- PKCS1MaskGenerationMethod.cs
- GridViewUpdateEventArgs.cs
- PropertyKey.cs
- AutomationProperties.cs
- TrailingSpaceComparer.cs
- EncryptedPackageFilter.cs
- Vars.cs
- UnaryQueryOperator.cs
- EntityDataSource.cs
- Geometry3D.cs