Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / ChildrenQuery.cs / 1305376 / 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
- EdmRelationshipNavigationPropertyAttribute.cs
- XmlSortKey.cs
- XmlArrayItemAttribute.cs
- CompoundFileDeflateTransform.cs
- TextServicesHost.cs
- OdbcFactory.cs
- OptionalColumn.cs
- RoutedPropertyChangedEventArgs.cs
- DoubleAnimationUsingKeyFrames.cs
- TypeSystemHelpers.cs
- XmlSerializationReader.cs
- WpfWebRequestHelper.cs
- WebSysDefaultValueAttribute.cs
- FieldBuilder.cs
- FormatterServices.cs
- IndexedString.cs
- RuntimeResourceSet.cs
- XmlSerializerVersionAttribute.cs
- KeyValuePair.cs
- OrthographicCamera.cs
- ItemList.cs
- InstanceDataCollectionCollection.cs
- DataKeyCollection.cs
- Size3D.cs
- ParserContext.cs
- NavigationFailedEventArgs.cs
- TableLayoutPanelCellPosition.cs
- Help.cs
- RegexParser.cs
- ImageAnimator.cs
- BindingCollection.cs
- ConfigsHelper.cs
- TypeResolver.cs
- AlphaSortedEnumConverter.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- ManipulationPivot.cs
- VerificationAttribute.cs
- DrawingBrush.cs
- ContainsRowNumberChecker.cs
- TrustManagerMoreInformation.cs
- UInt16.cs
- FormattedTextSymbols.cs
- ErrorStyle.cs
- SamlAttribute.cs
- UnknownBitmapDecoder.cs
- HtmlHead.cs
- ServiceDescriptionSerializer.cs
- Model3DGroup.cs
- ControlCollection.cs
- TableAutomationPeer.cs
- PointLightBase.cs
- DetailsViewPagerRow.cs
- AssemblyCollection.cs
- OleCmdHelper.cs
- TypeDescriptionProvider.cs
- ReadOnlyNameValueCollection.cs
- ListViewSelectEventArgs.cs
- DbgUtil.cs
- SettingsPropertyValue.cs
- ProxyWebPart.cs
- ConstructorArgumentAttribute.cs
- ManagedWndProcTracker.cs
- SHA384CryptoServiceProvider.cs
- AliasGenerator.cs
- WebPartConnectionsCancelVerb.cs
- WindowsRichEdit.cs
- SystemDropShadowChrome.cs
- CompensationHandlingFilter.cs
- ImageDrawing.cs
- Properties.cs
- WebPartVerb.cs
- SqlNode.cs
- OletxTransactionHeader.cs
- InstanceKeyCompleteException.cs
- HttpListenerElement.cs
- Control.cs
- CommonGetThemePartSize.cs
- XmlUtilWriter.cs
- SecurityUniqueId.cs
- Token.cs
- FieldNameLookup.cs
- DynamicQueryStringParameter.cs
- ParentQuery.cs
- DataControlLinkButton.cs
- ListViewItem.cs
- SqlCacheDependencyDatabase.cs
- XmlSortKey.cs
- CompatibleIComparer.cs
- ControlUtil.cs
- TreeViewImageIndexConverter.cs
- MissingFieldException.cs
- Wow64ConfigurationLoader.cs
- FaultBookmark.cs
- VectorAnimationUsingKeyFrames.cs
- AspCompat.cs
- DispatchWrapper.cs
- SQLBytesStorage.cs
- PassportIdentity.cs
- SelectionListComponentEditor.cs
- MonikerSyntaxException.cs