Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ExceptionRoutedEventArgs.cs
- ScrollableControlDesigner.cs
- Vector3D.cs
- RectangleHotSpot.cs
- RelatedImageListAttribute.cs
- __ComObject.cs
- ScriptResourceHandler.cs
- SectionUpdates.cs
- DesignerActionPropertyItem.cs
- GPStream.cs
- EntityCodeGenerator.cs
- X509IssuerSerialKeyIdentifierClause.cs
- WebMessageFormatHelper.cs
- DefaultMemberAttribute.cs
- HtmlInputFile.cs
- HttpValueCollection.cs
- ExtractedStateEntry.cs
- CmsUtils.cs
- ServiceNameCollection.cs
- EncodingDataItem.cs
- XmlSchemaAppInfo.cs
- FormViewActionList.cs
- cache.cs
- InitializerFacet.cs
- DisplayMemberTemplateSelector.cs
- SqlDataSourceQueryEditorForm.cs
- StatusBarAutomationPeer.cs
- BadImageFormatException.cs
- SlipBehavior.cs
- PbrsForward.cs
- DataStorage.cs
- RuleEngine.cs
- ChannelSinkStacks.cs
- DetailsViewUpdateEventArgs.cs
- XmlAtomErrorReader.cs
- CheckoutException.cs
- KnowledgeBase.cs
- TreeView.cs
- EnterpriseServicesHelper.cs
- UInt16Converter.cs
- Vector.cs
- RadialGradientBrush.cs
- InkPresenterAutomationPeer.cs
- ConfigXmlSignificantWhitespace.cs
- PageAdapter.cs
- Compilation.cs
- DisplayNameAttribute.cs
- TextEndOfLine.cs
- EditorPartChrome.cs
- PropertyMapper.cs
- ListViewItem.cs
- CodeCompileUnit.cs
- SrgsNameValueTag.cs
- InplaceBitmapMetadataWriter.cs
- XamlTypeMapper.cs
- TdsParser.cs
- Classification.cs
- NumberEdit.cs
- ActiveXMessageFormatter.cs
- FileChangesMonitor.cs
- Rect3D.cs
- FixedPageStructure.cs
- DesignerObjectListAdapter.cs
- ControlCollection.cs
- webbrowsersite.cs
- ActivitySurrogate.cs
- Utilities.cs
- input.cs
- OdbcDataReader.cs
- OneOf.cs
- PageThemeCodeDomTreeGenerator.cs
- safelinkcollection.cs
- PagerSettings.cs
- DispatcherHooks.cs
- Trace.cs
- PageCodeDomTreeGenerator.cs
- HelpProvider.cs
- ResourceDisplayNameAttribute.cs
- XmlNavigatorFilter.cs
- PropertyMap.cs
- SHA384Cng.cs
- DesignerOptionService.cs
- WindowsGrip.cs
- AttributeQuery.cs
- embossbitmapeffect.cs
- ClosureBinding.cs
- MaskDescriptors.cs
- BrowsableAttribute.cs
- SignedPkcs7.cs
- Accessors.cs
- XmlWrappingWriter.cs
- NeutralResourcesLanguageAttribute.cs
- CodePropertyReferenceExpression.cs
- DataGridViewSelectedRowCollection.cs
- ImpersonateTokenRef.cs
- PtsPage.cs
- CopyOnWriteList.cs
- ElementMarkupObject.cs
- DictionaryBase.cs
- UriWriter.cs