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 / DescendantQuery.cs / 1 / DescendantQuery.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 class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(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 class DescendantQuery : DescendantBaseQuery { XPathNodeIterator nodeIterator; internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {} public DescendantQuery(DescendantQuery other) : base(other) { this.nodeIterator = Clone(other.nodeIterator); } public override void Reset() { nodeIterator = null; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (nodeIterator == null) { position = 0; XPathNavigator nav = qyInput.Advance(); if (nav == null) { return null; } if (NameTest) { if (TypeTest == XPathNodeType.ProcessingInstruction) { nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name); } else { nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf); } } else { nodeIterator = nav.SelectDescendants(TypeTest, matchSelf); } } if (nodeIterator.MoveNext()) { position++; currentNode = nodeIterator.Current; return currentNode; } else { nodeIterator = null; } } } public override XPathNodeIterator Clone() { return new DescendantQuery(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
- ZipIOExtraFieldPaddingElement.cs
- RsaSecurityToken.cs
- Int64Storage.cs
- RoutedEventValueSerializer.cs
- SequenceDesigner.cs
- SoapException.cs
- HttpListenerException.cs
- Matrix3DConverter.cs
- ShaperBuffers.cs
- ApplicationSettingsBase.cs
- ItemList.cs
- IDQuery.cs
- SmtpLoginAuthenticationModule.cs
- ToolStripManager.cs
- Ipv6Element.cs
- ApplicationServiceManager.cs
- RegexStringValidatorAttribute.cs
- Matrix3DStack.cs
- CallSiteBinder.cs
- DnsPermission.cs
- BasicAsyncResult.cs
- InstanceData.cs
- PageFunction.cs
- FacetValueContainer.cs
- ZipIOModeEnforcingStream.cs
- CountAggregationOperator.cs
- MimeTypeAttribute.cs
- Rotation3DAnimation.cs
- HttpGetClientProtocol.cs
- DiscoveryInnerClientManaged11.cs
- MetadataPropertyvalue.cs
- DbDataAdapter.cs
- OutputCacheSection.cs
- RepeatButton.cs
- AppDomainUnloadedException.cs
- TargetPerspective.cs
- ControlValuePropertyAttribute.cs
- DBConnectionString.cs
- DataComponentGenerator.cs
- XmlBufferReader.cs
- EntityFunctions.cs
- SourceFileInfo.cs
- FontWeights.cs
- ListenerAdaptersInstallComponent.cs
- QueryHandler.cs
- RegexMatch.cs
- SQLInt32.cs
- ConfigurationValue.cs
- XdrBuilder.cs
- RangeValuePattern.cs
- BooleanFunctions.cs
- BrowserTree.cs
- ClientTarget.cs
- SQLInt32Storage.cs
- OleDbReferenceCollection.cs
- DispatcherHooks.cs
- KeyValueConfigurationElement.cs
- WebEventTraceProvider.cs
- FixedFlowMap.cs
- RoleManagerSection.cs
- TextEffectCollection.cs
- AttributedMetaModel.cs
- MaskedTextBoxTextEditor.cs
- WindowsSysHeader.cs
- CustomAttributeBuilder.cs
- IdentityReference.cs
- SoapServerMessage.cs
- SafeFileMapViewHandle.cs
- TemplateKey.cs
- HashHelpers.cs
- TextPatternIdentifiers.cs
- Convert.cs
- DataObjectMethodAttribute.cs
- PipelineDeploymentState.cs
- DataBindingHandlerAttribute.cs
- InputBuffer.cs
- VScrollBar.cs
- SizeValueSerializer.cs
- MapPathBasedVirtualPathProvider.cs
- ClaimComparer.cs
- AccessibleObject.cs
- MethodRental.cs
- ExtenderProvidedPropertyAttribute.cs
- Currency.cs
- SafeLibraryHandle.cs
- Base64Encoder.cs
- ParameterDataSourceExpression.cs
- ListenerConnectionModeReader.cs
- SimpleNameService.cs
- WebRequest.cs
- ItemChangedEventArgs.cs
- KnownBoxes.cs
- JsonReaderWriterFactory.cs
- RowUpdatedEventArgs.cs
- IncrementalHitTester.cs
- ActivityStateRecord.cs
- RoutedEventValueSerializer.cs
- BamlResourceSerializer.cs
- _ContextAwareResult.cs
- ApplicationCommands.cs