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
- EventDescriptor.cs
- StrokeCollection.cs
- Margins.cs
- URLMembershipCondition.cs
- RegistrationServices.cs
- LinqMaximalSubtreeNominator.cs
- ToolStripStatusLabel.cs
- WaitHandle.cs
- NameSpaceExtractor.cs
- FormView.cs
- CultureInfoConverter.cs
- Vector3DCollection.cs
- ContentOperations.cs
- BaseTemplateParser.cs
- SkewTransform.cs
- AsyncResult.cs
- M3DUtil.cs
- FixedSOMElement.cs
- DateTime.cs
- XsltLoader.cs
- RenderData.cs
- StorageEntityTypeMapping.cs
- LoadedOrUnloadedOperation.cs
- DecoderReplacementFallback.cs
- ListViewAutomationPeer.cs
- SqlMethodCallConverter.cs
- _KerberosClient.cs
- CookieParameter.cs
- Single.cs
- ListViewCommandEventArgs.cs
- ManipulationDevice.cs
- SmtpSection.cs
- Rfc2898DeriveBytes.cs
- ProfileGroupSettings.cs
- InternalDispatchObject.cs
- Subtree.cs
- querybuilder.cs
- ServiceRoute.cs
- PartialList.cs
- GradientStopCollection.cs
- controlskin.cs
- PageThemeParser.cs
- IndentTextWriter.cs
- TransactionContext.cs
- DbConnectionPoolGroupProviderInfo.cs
- CodeTypeReferenceSerializer.cs
- ToolStripSystemRenderer.cs
- ConfigXmlAttribute.cs
- DoubleLinkListEnumerator.cs
- AnimationTimeline.cs
- DateTimeFormatInfoScanner.cs
- EventHandlerList.cs
- InputEventArgs.cs
- SSmlParser.cs
- TextTabProperties.cs
- MD5Cng.cs
- UriTemplateCompoundPathSegment.cs
- wgx_render.cs
- UnmanagedMarshal.cs
- DynamicActionMessageFilter.cs
- SystemPens.cs
- FlowDocumentPage.cs
- CheckoutException.cs
- DatatypeImplementation.cs
- Stylus.cs
- TextBoxDesigner.cs
- _Connection.cs
- DecodeHelper.cs
- InputLanguageCollection.cs
- CommandLibraryHelper.cs
- SourceSwitch.cs
- ApplicationContext.cs
- DataControlCommands.cs
- PathData.cs
- EFAssociationProvider.cs
- StatusBarPanel.cs
- FusionWrap.cs
- NamespaceList.cs
- BrowserDefinition.cs
- IteratorDescriptor.cs
- SignatureToken.cs
- ProgressiveCrcCalculatingStream.cs
- URIFormatException.cs
- DataContractJsonSerializer.cs
- QueryExpr.cs
- CodeObject.cs
- WebPartAuthorizationEventArgs.cs
- DataMember.cs
- RuntimeConfigLKG.cs
- ResizeGrip.cs
- Animatable.cs
- CorrelationToken.cs
- ProfileSection.cs
- Propagator.Evaluator.cs
- cookieexception.cs
- LeftCellWrapper.cs
- CompilerLocalReference.cs
- MemberProjectedSlot.cs
- ReflectionTypeLoadException.cs
- InputBindingCollection.cs