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
- InfoCardXmlSerializer.cs
- GridViewUpdatedEventArgs.cs
- GridViewRowCollection.cs
- AdornerDecorator.cs
- TabRenderer.cs
- SmiEventSink_DeferedProcessing.cs
- RectangleF.cs
- XMLUtil.cs
- PrivateFontCollection.cs
- DesignTimeVisibleAttribute.cs
- CommentGlyph.cs
- WebPartConnectionCollection.cs
- ItemCheckedEvent.cs
- ISO2022Encoding.cs
- CommandDevice.cs
- HtmlTableCell.cs
- FreezableDefaultValueFactory.cs
- IfJoinedCondition.cs
- StructuralType.cs
- RouteTable.cs
- ToolStripItemImageRenderEventArgs.cs
- FormViewModeEventArgs.cs
- LicenseException.cs
- XhtmlTextWriter.cs
- XsdBuildProvider.cs
- EditingMode.cs
- TextDecoration.cs
- DoubleCollection.cs
- NativeMethods.cs
- SecurityBindingElementImporter.cs
- Hash.cs
- EditBehavior.cs
- regiisutil.cs
- KeyedHashAlgorithm.cs
- MessageSecurityProtocolFactory.cs
- RewritingPass.cs
- Unit.cs
- SelectingProviderEventArgs.cs
- BooleanConverter.cs
- AssociationEndMember.cs
- SiteMembershipCondition.cs
- InputScopeAttribute.cs
- GregorianCalendarHelper.cs
- TreeNode.cs
- XPathCompiler.cs
- ChineseLunisolarCalendar.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- XamlInt32CollectionSerializer.cs
- SeekableReadStream.cs
- CodeNamespace.cs
- XmlSchemaGroup.cs
- LifetimeServices.cs
- ActivityInterfaces.cs
- InternalConfigHost.cs
- Setter.cs
- LineMetrics.cs
- XamlSerializationHelper.cs
- SparseMemoryStream.cs
- CreateParams.cs
- FixedSOMPageConstructor.cs
- COM2ExtendedUITypeEditor.cs
- SocketPermission.cs
- ArrayList.cs
- ClientSettings.cs
- BuildProviderAppliesToAttribute.cs
- XmlSecureResolver.cs
- UnicastIPAddressInformationCollection.cs
- CssClassPropertyAttribute.cs
- ClassGenerator.cs
- _IPv4Address.cs
- OciHandle.cs
- PageStatePersister.cs
- AutomationEventArgs.cs
- AmbientEnvironment.cs
- DashStyles.cs
- ObjectAnimationBase.cs
- EnumerableRowCollection.cs
- Positioning.cs
- OperandQuery.cs
- NamespaceImport.cs
- EnvironmentPermission.cs
- ToolBar.cs
- AppSettings.cs
- TabPanel.cs
- XmlDocumentSerializer.cs
- SecurityTokenProvider.cs
- SafeFileMappingHandle.cs
- CheckoutException.cs
- AsyncOperation.cs
- RenderDataDrawingContext.cs
- FamilyCollection.cs
- UTF8Encoding.cs
- ADRole.cs
- StructuredType.cs
- TypeToken.cs
- DefaultTextStore.cs
- InsufficientMemoryException.cs
- SkipStoryboardToFill.cs
- SystemColorTracker.cs
- DataSvcMapFileSerializer.cs