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
- SizeLimitedCache.cs
- AdjustableArrowCap.cs
- FormViewPagerRow.cs
- DataGridViewCellFormattingEventArgs.cs
- _NegoStream.cs
- MemberExpressionHelper.cs
- Missing.cs
- FigureParagraph.cs
- ComponentEditorPage.cs
- ManagementEventArgs.cs
- MulticastOption.cs
- RequestContext.cs
- DataPagerFieldCollection.cs
- LicenseProviderAttribute.cs
- ResourceProperty.cs
- UseLicense.cs
- FileLevelControlBuilderAttribute.cs
- FontDialog.cs
- XLinq.cs
- WsatStrings.cs
- Style.cs
- FontFamilyIdentifier.cs
- ScriptingSectionGroup.cs
- EntityContainerAssociationSet.cs
- FileDialog.cs
- DesignerUtility.cs
- PeerNodeAddress.cs
- QueryStringParameter.cs
- MultiSelectRootGridEntry.cs
- InvalidFilterCriteriaException.cs
- ObjectManager.cs
- DefaultSection.cs
- ErrorTableItemStyle.cs
- RequestCachingSection.cs
- IndexedEnumerable.cs
- WasEndpointConfigContainer.cs
- SecureUICommand.cs
- SiteMapDataSource.cs
- WinInetCache.cs
- DeflateStream.cs
- GridViewRowCollection.cs
- ListParaClient.cs
- RijndaelManaged.cs
- SafeRsaProviderHandle.cs
- dbdatarecord.cs
- HttpListenerException.cs
- AnimationLayer.cs
- Light.cs
- QueryOutputWriter.cs
- BindingUtils.cs
- DataGridViewToolTip.cs
- TextElementCollectionHelper.cs
- InfoCardServiceInstallComponent.cs
- OutOfMemoryException.cs
- TextEmbeddedObject.cs
- Soap.cs
- EntityAdapter.cs
- ITreeGenerator.cs
- Rect3D.cs
- InfoCardRSACryptoProvider.cs
- UIElement.cs
- ProcessInfo.cs
- HttpCacheVaryByContentEncodings.cs
- MetaData.cs
- ModuleBuilderData.cs
- HttpVersion.cs
- PhysicalOps.cs
- OleServicesContext.cs
- oledbconnectionstring.cs
- ChtmlSelectionListAdapter.cs
- BStrWrapper.cs
- FontStyleConverter.cs
- EncodingDataItem.cs
- DesigntimeLicenseContextSerializer.cs
- DbSource.cs
- FixedHighlight.cs
- OleDbRowUpdatingEvent.cs
- ProjectionPruner.cs
- EventProviderWriter.cs
- ControlPropertyNameConverter.cs
- Byte.cs
- AlternationConverter.cs
- HandlerWithFactory.cs
- ZipIORawDataFileBlock.cs
- StringUtil.cs
- XmlNamespaceMapping.cs
- MediaScriptCommandRoutedEventArgs.cs
- TripleDESCryptoServiceProvider.cs
- Soap12FormatExtensions.cs
- SqlExpander.cs
- InputProcessorProfiles.cs
- Int32Converter.cs
- PersonalizationProviderCollection.cs
- ColumnBinding.cs
- UIntPtr.cs
- XPathNodeHelper.cs
- GuidelineSet.cs
- SRGSCompiler.cs
- BufferModeSettings.cs
- PageHandlerFactory.cs