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
- Converter.cs
- CompilationRelaxations.cs
- figurelengthconverter.cs
- StylusPlugInCollection.cs
- TableAutomationPeer.cs
- CompilationLock.cs
- Dump.cs
- RoleBoolean.cs
- ContextMenuStrip.cs
- BuildProviderCollection.cs
- PropertyGrid.cs
- DirectionalLight.cs
- SafeCoTaskMem.cs
- ControlPropertyNameConverter.cs
- StylusPointProperty.cs
- SqlUnionizer.cs
- FrameworkTemplate.cs
- ApplicationSecurityManager.cs
- Dispatcher.cs
- DesignerOptionService.cs
- PerformanceCounterManager.cs
- StrongName.cs
- ParameterExpression.cs
- HTMLTagNameToTypeMapper.cs
- QilInvokeLateBound.cs
- ReferenceConverter.cs
- ManagementInstaller.cs
- XmlAttributeOverrides.cs
- WebCategoryAttribute.cs
- PeerCollaborationPermission.cs
- PrinterResolution.cs
- ColorContext.cs
- Pair.cs
- Trigger.cs
- RangeValidator.cs
- MediaElementAutomationPeer.cs
- SingleStorage.cs
- ExceptionValidationRule.cs
- SmiConnection.cs
- CreatingCookieEventArgs.cs
- HttpException.cs
- FontSizeConverter.cs
- OrderablePartitioner.cs
- ToolboxComponentsCreatingEventArgs.cs
- PenLineJoinValidation.cs
- ArrangedElement.cs
- X509ServiceCertificateAuthenticationElement.cs
- ChangePassword.cs
- formatstringdialog.cs
- XPathQilFactory.cs
- EntityDataSourceDesigner.cs
- MethodImplAttribute.cs
- PinnedBufferMemoryStream.cs
- ToolStripSystemRenderer.cs
- CreateUserWizard.cs
- DataSetFieldSchema.cs
- DataGridViewComboBoxCell.cs
- StrokeRenderer.cs
- StateBag.cs
- DataGridViewHeaderCell.cs
- ValidationResult.cs
- XPathSelectionIterator.cs
- ModifierKeysConverter.cs
- XpsDigitalSignature.cs
- httpapplicationstate.cs
- CapiSafeHandles.cs
- DeflateEmulationStream.cs
- OrderPreservingMergeHelper.cs
- DBCommandBuilder.cs
- CssTextWriter.cs
- UrlAuthFailureHandler.cs
- EdmProperty.cs
- MobileControlsSectionHandler.cs
- DataMisalignedException.cs
- CultureInfoConverter.cs
- ServiceRoute.cs
- CheckBoxBaseAdapter.cs
- HandlerMappingMemo.cs
- DeclaredTypeValidatorAttribute.cs
- DragEvent.cs
- CodePageUtils.cs
- PrePrepareMethodAttribute.cs
- X509InitiatorCertificateServiceElement.cs
- TypeLibraryHelper.cs
- BitmapMetadataEnumerator.cs
- LogRestartAreaEnumerator.cs
- ObjectStateEntry.cs
- CommandField.cs
- StorageSetMapping.cs
- KernelTypeValidation.cs
- FormatException.cs
- COM2IDispatchConverter.cs
- ListViewDeletedEventArgs.cs
- HostVisual.cs
- CompiledRegexRunner.cs
- SmiRecordBuffer.cs
- TaiwanLunisolarCalendar.cs
- TableItemPattern.cs
- DATA_BLOB.cs
- RegistrySecurity.cs