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 / followingquery.cs / 1 / followingquery.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;
internal sealed class FollowingQuery : BaseAxisQuery {
private XPathNavigator input;
private XPathNodeIterator iterator;
public FollowingQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) {}
private FollowingQuery(FollowingQuery other) : base(other) {
this.input = Clone(other.input);
this.iterator = Clone(other.iterator);
}
public override void Reset() {
iterator = null;
base.Reset();
}
public override XPathNavigator Advance() {
if (iterator == null) {
input = qyInput.Advance();
if (input == null) {
return null;
}
XPathNavigator prev;
do {
prev = input.Clone();
input = qyInput.Advance();
} while (prev.IsDescendant(input));
input = prev;
iterator = XPathEmptyIterator.Instance;
}
while (! iterator.MoveNext()) {
bool matchSelf;
if (input.NodeType == XPathNodeType.Attribute || input.NodeType == XPathNodeType.Namespace) {
input.MoveToParent();
matchSelf = false;
} else {
while (! input.MoveToNext()) {
if (! input.MoveToParent()) {
return null;
}
}
matchSelf = true;
}
if (NameTest) {
iterator = input.SelectDescendants(Name, Namespace, matchSelf);
} else {
iterator = input.SelectDescendants(TypeTest, matchSelf);
}
}
position++;
currentNode = iterator.Current;
return currentNode;
}
public override XPathNodeIterator Clone() { return new FollowingQuery(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;
internal sealed class FollowingQuery : BaseAxisQuery {
private XPathNavigator input;
private XPathNodeIterator iterator;
public FollowingQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) {}
private FollowingQuery(FollowingQuery other) : base(other) {
this.input = Clone(other.input);
this.iterator = Clone(other.iterator);
}
public override void Reset() {
iterator = null;
base.Reset();
}
public override XPathNavigator Advance() {
if (iterator == null) {
input = qyInput.Advance();
if (input == null) {
return null;
}
XPathNavigator prev;
do {
prev = input.Clone();
input = qyInput.Advance();
} while (prev.IsDescendant(input));
input = prev;
iterator = XPathEmptyIterator.Instance;
}
while (! iterator.MoveNext()) {
bool matchSelf;
if (input.NodeType == XPathNodeType.Attribute || input.NodeType == XPathNodeType.Namespace) {
input.MoveToParent();
matchSelf = false;
} else {
while (! input.MoveToNext()) {
if (! input.MoveToParent()) {
return null;
}
}
matchSelf = true;
}
if (NameTest) {
iterator = input.SelectDescendants(Name, Namespace, matchSelf);
} else {
iterator = input.SelectDescendants(TypeTest, matchSelf);
}
}
position++;
currentNode = iterator.Current;
return currentNode;
}
public override XPathNodeIterator Clone() { return new FollowingQuery(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
- LeftCellWrapper.cs
- ClientTargetCollection.cs
- BufferedGraphicsContext.cs
- securitymgrsite.cs
- Validator.cs
- QilVisitor.cs
- QuaternionAnimationBase.cs
- KeyValuePairs.cs
- BufferedMessageWriter.cs
- KeyConverter.cs
- UnsafeNativeMethods.cs
- ScaleTransform.cs
- Calendar.cs
- TextServicesHost.cs
- SymLanguageType.cs
- FrameworkElementFactory.cs
- XmlSyndicationContent.cs
- CounterSetInstance.cs
- CodeGeneratorOptions.cs
- FileDialog.cs
- BitmapEffectInput.cs
- BooleanKeyFrameCollection.cs
- QueryCursorEventArgs.cs
- Matrix3DValueSerializer.cs
- TraceSource.cs
- CounterCreationDataCollection.cs
- Processor.cs
- TypeForwardedToAttribute.cs
- CategoryGridEntry.cs
- ElementAction.cs
- ToolTip.cs
- VScrollBar.cs
- GenericWebPart.cs
- EntityTemplateFactory.cs
- QueryExecutionOption.cs
- InputReportEventArgs.cs
- basenumberconverter.cs
- CounterSample.cs
- Win32KeyboardDevice.cs
- OptionUsage.cs
- NodeFunctions.cs
- SystemException.cs
- SmtpClient.cs
- ColumnCollection.cs
- basecomparevalidator.cs
- WebPartDisplayMode.cs
- WebPartDisplayModeCollection.cs
- TaskCanceledException.cs
- BufferedReadStream.cs
- BoundConstants.cs
- ChannelFactory.cs
- EmptyCollection.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- XmlSerializerFactory.cs
- BaseValidator.cs
- Math.cs
- WinFormsUtils.cs
- GraphicsPathIterator.cs
- _TLSstream.cs
- MethodBuilderInstantiation.cs
- DBParameter.cs
- Misc.cs
- CodeNamespaceCollection.cs
- SspiNegotiationTokenProviderState.cs
- JapaneseLunisolarCalendar.cs
- RetrieveVirtualItemEventArgs.cs
- StyleTypedPropertyAttribute.cs
- NodeFunctions.cs
- TemplateEditingService.cs
- ClientProxyGenerator.cs
- XmlSerializerNamespaces.cs
- BaseServiceProvider.cs
- PathSegmentCollection.cs
- EventProxy.cs
- IgnoreFlushAndCloseStream.cs
- IntellisenseTextBox.cs
- HttpModuleCollection.cs
- TextBoxLine.cs
- TypeValidationEventArgs.cs
- ListViewCancelEventArgs.cs
- SoapHttpTransportImporter.cs
- CaretElement.cs
- CopyOfAction.cs
- CancellationHandler.cs
- ListView.cs
- TrackingProfileCache.cs
- ZipIOCentralDirectoryFileHeader.cs
- WebServiceData.cs
- DataGrid.cs
- CodeBinaryOperatorExpression.cs
- SplayTreeNode.cs
- SecurityKeyType.cs
- InteropAutomationProvider.cs
- HttpCachePolicyBase.cs
- ListViewUpdatedEventArgs.cs
- KeyEvent.cs
- BaseValidator.cs
- DateTimeFormat.cs
- QuerySetOp.cs
- DataPagerFieldItem.cs