Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- SqlCaseSimplifier.cs
- Method.cs
- XPathParser.cs
- _DisconnectOverlappedAsyncResult.cs
- QueryStringParameter.cs
- ToolStripPanelRenderEventArgs.cs
- GreaterThan.cs
- Metafile.cs
- XmlQualifiedName.cs
- DbConnectionPoolOptions.cs
- Internal.cs
- WindowsRebar.cs
- DecimalFormatter.cs
- ParameterCollection.cs
- TempFiles.cs
- CacheModeConverter.cs
- ObjectTypeMapping.cs
- TextRange.cs
- DetailsViewPagerRow.cs
- MachineKeyConverter.cs
- XmlEncApr2001.cs
- GeneralTransform2DTo3DTo2D.cs
- WSMessageEncoding.cs
- DBConnection.cs
- clipboard.cs
- ModelItemKeyValuePair.cs
- CopyOfAction.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DoubleAnimationUsingKeyFrames.cs
- SkewTransform.cs
- CaseStatement.cs
- QilList.cs
- GridViewAutoFormat.cs
- ParseChildrenAsPropertiesAttribute.cs
- SafeEventLogWriteHandle.cs
- HtmlTitle.cs
- DefaultPrintController.cs
- MarkupCompilePass1.cs
- CodeTypeMember.cs
- AuthenticatedStream.cs
- KeysConverter.cs
- SiteMapDataSource.cs
- ProfilePropertySettings.cs
- COM2PropertyDescriptor.cs
- StylusButtonEventArgs.cs
- TileBrush.cs
- ValidationUtility.cs
- ActivityDesignerAccessibleObject.cs
- SchemaElementDecl.cs
- BuildProvider.cs
- Base64Decoder.cs
- Soap.cs
- FocusChangedEventArgs.cs
- NavigationProperty.cs
- IPHostEntry.cs
- FontStretchConverter.cs
- ParameterReplacerVisitor.cs
- XDeferredAxisSource.cs
- GorillaCodec.cs
- FontUnitConverter.cs
- DescendantOverDescendantQuery.cs
- MetadataCache.cs
- HttpWebRequestElement.cs
- DetailsViewDeleteEventArgs.cs
- SessionIDManager.cs
- UriExt.cs
- DesignerEditorPartChrome.cs
- TemplateManager.cs
- TextComposition.cs
- SafeHandles.cs
- WizardPanel.cs
- MobilePage.cs
- WinFormsUtils.cs
- TextAdaptor.cs
- OrderingQueryOperator.cs
- WebPartConnectionsConfigureVerb.cs
- WhitespaceRuleReader.cs
- XmlDocumentSurrogate.cs
- _AutoWebProxyScriptHelper.cs
- UnsafeNativeMethodsTablet.cs
- Thumb.cs
- BaseTreeIterator.cs
- LayoutManager.cs
- SqlConnectionHelper.cs
- columnmapkeybuilder.cs
- SocketPermission.cs
- WebBrowser.cs
- AttributeExtensions.cs
- SpecularMaterial.cs
- Helpers.cs
- WebServiceData.cs
- InternalCompensate.cs
- RegistryDataKey.cs
- Util.cs
- CreateUserWizardStep.cs
- Empty.cs
- StateDesigner.Helpers.cs
- HtmlFormAdapter.cs
- ArrayList.cs
- EntityDataSourceWizardForm.cs