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
- ScrollChangedEventArgs.cs
- WebBrowserEvent.cs
- AuthenticatingEventArgs.cs
- DataGridViewHitTestInfo.cs
- ProgressPage.cs
- Internal.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- coordinator.cs
- XmlWellformedWriter.cs
- _ListenerAsyncResult.cs
- RecordManager.cs
- AssociatedControlConverter.cs
- Visitors.cs
- ProgressChangedEventArgs.cs
- TraceSource.cs
- TransactionScope.cs
- GcSettings.cs
- ObjectHandle.cs
- Identity.cs
- Queue.cs
- SqlClientFactory.cs
- GestureRecognizer.cs
- DropDownButton.cs
- ToolbarAUtomationPeer.cs
- DefaultValueConverter.cs
- TypeAccessException.cs
- ContactManager.cs
- UnsafeNativeMethods.cs
- RichTextBox.cs
- SplitContainer.cs
- ByteAnimation.cs
- CustomBindingElement.cs
- XmlSchemaExternal.cs
- RoutedCommand.cs
- DependencyPropertyKey.cs
- PolygonHotSpot.cs
- DefaultIfEmptyQueryOperator.cs
- SaveLedgerEntryRequest.cs
- Exception.cs
- ResourceWriter.cs
- WebPartConnectionsCancelVerb.cs
- TemplateControlBuildProvider.cs
- SendSecurityHeader.cs
- ThreadStaticAttribute.cs
- WSDualHttpSecurity.cs
- InstanceDataCollectionCollection.cs
- CFGGrammar.cs
- FactoryMaker.cs
- Debug.cs
- TextEndOfLine.cs
- OperationExecutionFault.cs
- TreeNodeStyle.cs
- ScriptResourceHandler.cs
- StartFileNameEditor.cs
- QueryCacheEntry.cs
- VisualState.cs
- PartitionResolver.cs
- EventRouteFactory.cs
- TableCellCollection.cs
- ToolStripOverflowButton.cs
- odbcmetadatafactory.cs
- WebBrowserBase.cs
- SchemaTableColumn.cs
- GradientBrush.cs
- RemotingConfigParser.cs
- ParameterModifier.cs
- MULTI_QI.cs
- NetSectionGroup.cs
- BoundingRectTracker.cs
- PropertyTabChangedEvent.cs
- SerialPort.cs
- WCFServiceClientProxyGenerator.cs
- LocalizableAttribute.cs
- XmlElement.cs
- AsymmetricSignatureFormatter.cs
- EmptyCollection.cs
- DataSvcMapFile.cs
- DataBindingsDialog.cs
- WebPartConnectionsConnectVerb.cs
- EntryPointNotFoundException.cs
- DocumentSchemaValidator.cs
- XmlReflectionMember.cs
- ErrorLog.cs
- ErrorInfoXmlDocument.cs
- RowVisual.cs
- NameTable.cs
- EdmMember.cs
- XamlSerializerUtil.cs
- Model3D.cs
- Version.cs
- Policy.cs
- FastEncoderWindow.cs
- BackgroundFormatInfo.cs
- OleDbParameterCollection.cs
- CopyNamespacesAction.cs
- EnterpriseServicesHelper.cs
- Mappings.cs
- TemplateBamlRecordReader.cs
- ValidationRuleCollection.cs
- QueryStatement.cs