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
- XNodeSchemaApplier.cs
- XamlTemplateSerializer.cs
- CryptoProvider.cs
- AsymmetricSignatureFormatter.cs
- SQLMoneyStorage.cs
- SocketElement.cs
- SystemDropShadowChrome.cs
- TimestampInformation.cs
- DbMetaDataColumnNames.cs
- ColumnHeaderConverter.cs
- PermissionToken.cs
- ObjectContext.cs
- ApplicationSecurityManager.cs
- TranslateTransform.cs
- NamedPipeAppDomainProtocolHandler.cs
- SevenBitStream.cs
- DrawingContextWalker.cs
- TreeNodeConverter.cs
- UInt64Converter.cs
- XmlParserContext.cs
- GeometryCollection.cs
- GroupQuery.cs
- SHA256.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- OdbcError.cs
- EntityDataSourceDesigner.cs
- DataGridViewElement.cs
- sqlpipe.cs
- FrameworkElement.cs
- StringDictionary.cs
- TraceListeners.cs
- TextContainerChangedEventArgs.cs
- X509KeyIdentifierClauseType.cs
- CloseSequenceResponse.cs
- ComPlusTypeLoader.cs
- Monitor.cs
- ToolStripItemImageRenderEventArgs.cs
- FrameSecurityDescriptor.cs
- TypedDatasetGenerator.cs
- ToolStripOverflowButton.cs
- AppDomainFactory.cs
- LinqDataSourceDisposeEventArgs.cs
- HostingEnvironmentException.cs
- MulticastDelegate.cs
- TimelineGroup.cs
- EntityDataSourceState.cs
- TextViewSelectionProcessor.cs
- BulletChrome.cs
- ActivationServices.cs
- BitmapFrame.cs
- SqlTriggerAttribute.cs
- WebServiceTypeData.cs
- ExtensibleClassFactory.cs
- ClientRuntimeConfig.cs
- SelectionHighlightInfo.cs
- RSAPKCS1KeyExchangeFormatter.cs
- WebPartConnectionCollection.cs
- XpsS0ValidatingLoader.cs
- WindowsListViewItem.cs
- DocumentAutomationPeer.cs
- ReflectionServiceProvider.cs
- PathFigure.cs
- Part.cs
- ImageMap.cs
- ComProxy.cs
- ProviderSettings.cs
- AdjustableArrowCap.cs
- KnownIds.cs
- ElementNotAvailableException.cs
- DisableDpiAwarenessAttribute.cs
- WebPartConnectionsConfigureVerb.cs
- WebPartAddingEventArgs.cs
- TextEditorTables.cs
- DynamicRenderer.cs
- LabelDesigner.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ImageField.cs
- BeginSelectCardRequest.cs
- XmlWriter.cs
- Graphics.cs
- ToolStripDropDownClosingEventArgs.cs
- CustomActivityDesigner.cs
- InitialServerConnectionReader.cs
- MexServiceChannelBuilder.cs
- _OSSOCK.cs
- RemotingServices.cs
- ScriptComponentDescriptor.cs
- JsonEnumDataContract.cs
- TypedTableBaseExtensions.cs
- MemoryRecordBuffer.cs
- ComponentCache.cs
- ManagementEventWatcher.cs
- InvalidDataContractException.cs
- Logging.cs
- XmlIlTypeHelper.cs
- MethodToken.cs
- SetStateDesigner.cs
- ResourceManagerWrapper.cs
- FixedDSBuilder.cs
- ColumnTypeConverter.cs