Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- VirtualizingPanel.cs
- DataConnectionHelper.cs
- _SingleItemRequestCache.cs
- FillErrorEventArgs.cs
- CultureInfo.cs
- CultureInfo.cs
- UIInitializationException.cs
- ReliableReplySessionChannel.cs
- DataFieldEditor.cs
- VectorKeyFrameCollection.cs
- StylusButtonCollection.cs
- AutomationElementCollection.cs
- EdmPropertyAttribute.cs
- _Semaphore.cs
- CurrentChangingEventArgs.cs
- DataGridViewToolTip.cs
- OpenCollectionAsyncResult.cs
- AbstractExpressions.cs
- RankException.cs
- QueueProcessor.cs
- Label.cs
- FormViewInsertedEventArgs.cs
- QualificationDataItem.cs
- GetWinFXPath.cs
- TableLayoutPanelCodeDomSerializer.cs
- Calendar.cs
- EditorPartChrome.cs
- ResourceAttributes.cs
- SwitchElementsCollection.cs
- Identity.cs
- HtmlTitle.cs
- CompiledRegexRunner.cs
- NavigationProperty.cs
- ModelUIElement3D.cs
- Drawing.cs
- DesignerHost.cs
- Axis.cs
- unsafenativemethodstextservices.cs
- DefaultMemberAttribute.cs
- CorrelationManager.cs
- ArraySortHelper.cs
- TeredoHelper.cs
- OpenTypeLayoutCache.cs
- MetadataCache.cs
- AuthorizationSection.cs
- SmiXetterAccessMap.cs
- Vars.cs
- ApplicationException.cs
- UntypedNullExpression.cs
- FontResourceCache.cs
- ListViewSortEventArgs.cs
- InstanceValue.cs
- HtmlWindowCollection.cs
- MouseGestureConverter.cs
- ColumnWidthChangedEvent.cs
- ListBox.cs
- HashRepartitionEnumerator.cs
- SqlBuilder.cs
- HandlerFactoryWrapper.cs
- XmlSchemaComplexContentExtension.cs
- DockAndAnchorLayout.cs
- NeedSkipTokenVisitor.cs
- ZoneMembershipCondition.cs
- MediaContext.cs
- Part.cs
- CultureSpecificCharacterBufferRange.cs
- TraceShell.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- CLSCompliantAttribute.cs
- _ListenerResponseStream.cs
- ModuleElement.cs
- StorageConditionPropertyMapping.cs
- HttpValueCollection.cs
- KeyNotFoundException.cs
- DataGridViewRowCancelEventArgs.cs
- RedistVersionInfo.cs
- SqlExpressionNullability.cs
- TagPrefixCollection.cs
- PerformanceCounterNameAttribute.cs
- MetadataFile.cs
- RectAnimation.cs
- HttpFormatExtensions.cs
- ToolStripSeparatorRenderEventArgs.cs
- DesignerCatalogPartChrome.cs
- NetworkInterface.cs
- _ConnectionGroup.cs
- HTTPNotFoundHandler.cs
- Expressions.cs
- NamespaceEmitter.cs
- HttpCapabilitiesEvaluator.cs
- CodeChecksumPragma.cs
- InheritablePropertyChangeInfo.cs
- RSACryptoServiceProvider.cs
- DataListItem.cs
- XmlMembersMapping.cs
- WindowVisualStateTracker.cs
- ConditionValidator.cs
- PropertyToken.cs
- GroupJoinQueryOperator.cs
- CodeFieldReferenceExpression.cs