Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / AttributeQuery.cs / 1 / AttributeQuery.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; internal sealed class AttributeQuery : BaseAxisQuery { private bool onAttribute = false; public AttributeQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type) : base(qyParent, Name, Prefix, Type) {} private AttributeQuery(AttributeQuery other) : base(other) { this.onAttribute = other.onAttribute; } public override void Reset() { onAttribute = false; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (! onAttribute) { currentNode = qyInput.Advance(); if (currentNode == null) { return null; } position = 0; currentNode = currentNode.Clone(); onAttribute = currentNode.MoveToFirstAttribute(); } else { onAttribute = currentNode.MoveToNextAttribute(); } if (onAttribute) { Debug.Assert(! currentNode.NamespaceURI.Equals(XmlReservedNs.NsXmlNs)); if (matches(currentNode)) { position++; return currentNode; } } } // while } public override XPathNavigator MatchNode(XPathNavigator context) { if (context != null) { if (context.NodeType == XPathNodeType.Attribute && matches(context)) { XPathNavigator temp = context.Clone(); if (temp.MoveToParent()) { return qyInput.MatchNode(temp); } } } return null; } public override XPathNodeIterator Clone() { return new AttributeQuery(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TreeNodeSelectionProcessor.cs
- SBCSCodePageEncoding.cs
- ClientFormsIdentity.cs
- configsystem.cs
- IOThreadTimer.cs
- SizeIndependentAnimationStorage.cs
- AlphaSortedEnumConverter.cs
- Queue.cs
- xamlnodes.cs
- UiaCoreApi.cs
- IntSecurity.cs
- DbConnectionPoolGroup.cs
- TraceEventCache.cs
- DataFieldEditor.cs
- DropDownList.cs
- ButtonBase.cs
- XmlAttribute.cs
- GridItem.cs
- HierarchicalDataBoundControlAdapter.cs
- OdbcErrorCollection.cs
- AggregateNode.cs
- ServiceEndpointCollection.cs
- TypeElement.cs
- AmbientProperties.cs
- DateTimeOffset.cs
- PagedDataSource.cs
- SpellerHighlightLayer.cs
- Operand.cs
- XmlDataImplementation.cs
- DefaultProxySection.cs
- XmlReaderSettings.cs
- DefaultEventAttribute.cs
- HttpRuntime.cs
- TableLayoutStyle.cs
- CompiledRegexRunnerFactory.cs
- TabItem.cs
- TypeUtil.cs
- XmlNodeChangedEventArgs.cs
- RectangleF.cs
- CanonicalFormWriter.cs
- ClientRolePrincipal.cs
- TextCollapsingProperties.cs
- DataGridViewUtilities.cs
- ScrollItemProviderWrapper.cs
- Screen.cs
- Repeater.cs
- SyndicationPerson.cs
- XmlSchemaAnnotated.cs
- PeerCollaborationPermission.cs
- QueryCursorEventArgs.cs
- UseLicense.cs
- MsmqInputMessage.cs
- CollectionExtensions.cs
- PrtCap_Public_Simple.cs
- PrimitiveDataContract.cs
- FileEnumerator.cs
- CodeTypeMemberCollection.cs
- MouseGestureValueSerializer.cs
- ResourcesBuildProvider.cs
- KeyPullup.cs
- PlanCompilerUtil.cs
- Converter.cs
- NameValueFileSectionHandler.cs
- _SecureChannel.cs
- DBDataPermission.cs
- JavaScriptSerializer.cs
- LoadMessageLogger.cs
- ProjectionPlan.cs
- TemplateControlParser.cs
- CFStream.cs
- ResourcesBuildProvider.cs
- ZeroOpNode.cs
- StrokeNode.cs
- ArrayTypeMismatchException.cs
- XmlnsDictionary.cs
- ImageBrush.cs
- SoapExtensionReflector.cs
- SafeEventLogWriteHandle.cs
- RootCodeDomSerializer.cs
- CustomErrorsSection.cs
- DetailsViewInsertEventArgs.cs
- Rijndael.cs
- XamlReaderHelper.cs
- DataGridViewColumnConverter.cs
- XmlSchemaInclude.cs
- HttpListenerResponse.cs
- DrawingCollection.cs
- ExcludePathInfo.cs
- NoClickablePointException.cs
- HtmlUtf8RawTextWriter.cs
- Aes.cs
- _AutoWebProxyScriptHelper.cs
- ColumnBinding.cs
- DataGridItemAutomationPeer.cs
- COM2PropertyPageUITypeConverter.cs
- Repeater.cs
- TablePattern.cs
- OutOfMemoryException.cs
- Config.cs
- filewebrequest.cs