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
- DispatcherObject.cs
- VirtualPathUtility.cs
- ConfigurationSectionCollection.cs
- DrawingCollection.cs
- StringFreezingAttribute.cs
- DesignerRegionCollection.cs
- ServiceSecurityContext.cs
- CodeObject.cs
- SequentialUshortCollection.cs
- MetadataArtifactLoaderResource.cs
- DataGridRelationshipRow.cs
- _SslSessionsCache.cs
- ScrollableControl.cs
- Command.cs
- DataColumn.cs
- BindingElementCollection.cs
- DefaultTextStore.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- MasterPage.cs
- StaticTextPointer.cs
- RenderTargetBitmap.cs
- XPathNodePointer.cs
- SignedInfo.cs
- AssemblyNameEqualityComparer.cs
- BindingCompleteEventArgs.cs
- CodeAttributeDeclarationCollection.cs
- ApplicationDirectory.cs
- TextSelectionProcessor.cs
- DBCommand.cs
- DisplayInformation.cs
- ValueTypeFixupInfo.cs
- listviewsubitemcollectioneditor.cs
- HorizontalAlignConverter.cs
- ConfigurationStrings.cs
- MediaScriptCommandRoutedEventArgs.cs
- MetadataFile.cs
- TextContainerHelper.cs
- UserNameSecurityTokenParameters.cs
- ModifyActivitiesPropertyDescriptor.cs
- ConnectionsZone.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- HostSecurityManager.cs
- BooleanStorage.cs
- BoundPropertyEntry.cs
- DefaultParameterValueAttribute.cs
- BooleanStorage.cs
- ResourceAttributes.cs
- ExecutionContext.cs
- CodeSnippetTypeMember.cs
- SqlDependencyListener.cs
- UpdateProgress.cs
- TraceLog.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- WebBrowserBase.cs
- OleStrCAMarshaler.cs
- LinqDataSourceDeleteEventArgs.cs
- FaultPropagationQuery.cs
- FixedTextBuilder.cs
- ExtractCollection.cs
- SourceCollection.cs
- NetMsmqBindingElement.cs
- RelativeSource.cs
- ToolStripItemTextRenderEventArgs.cs
- CalendarAutoFormat.cs
- DeferredTextReference.cs
- Bold.cs
- DataGridViewColumn.cs
- DESCryptoServiceProvider.cs
- BitmapVisualManager.cs
- DispatchOperationRuntime.cs
- HandlerWithFactory.cs
- Part.cs
- SiteMap.cs
- RecipientInfo.cs
- Classification.cs
- GridEntry.cs
- GenerateDerivedKeyRequest.cs
- HierarchicalDataSourceIDConverter.cs
- UnaryNode.cs
- SystemTcpStatistics.cs
- EntityUtil.cs
- NativeMethods.cs
- PersonalizationStateQuery.cs
- SchemaNames.cs
- PersistenceProviderDirectory.cs
- EncryptedKey.cs
- Ray3DHitTestResult.cs
- OdbcHandle.cs
- ManagementEventWatcher.cs
- TextBoxRenderer.cs
- FamilyTypeface.cs
- IteratorFilter.cs
- StringDictionaryCodeDomSerializer.cs
- AccessDataSourceView.cs
- WebBrowserHelper.cs
- GeneralTransform3DGroup.cs
- SrgsElementFactoryCompiler.cs
- D3DImage.cs
- Matrix.cs
- X509Utils.cs