System.Xml.XPath.XPathNavigatorReader.MoveToAttribute C# (CSharp) Метод

MoveToAttribute() публичный Метод

public MoveToAttribute ( string name ) : bool
name string
Результат bool
        public override bool MoveToAttribute( string name ) {
            int depth;
            XPathNavigator nav = GetElemNav(out depth);
            if (null == nav)
                return false;

            string prefix, localname;
            ValidateNames.SplitQName( name, out prefix, out localname );

            // watch for a namespace name
            bool IsXmlnsNoPrefix = false;
            if ( ( IsXmlnsNoPrefix = ( 0 == prefix.Length && localname == "xmlns" ) )
                || ( prefix == "xmlns" ) ) {
                if ( IsXmlnsNoPrefix )
                    localname = string.Empty;
                if ( nav.MoveToFirstNamespace(XPathNamespaceScope.Local) ) {
                    do {
                        if (nav.LocalName == localname)
                            goto FoundMatch;
                    } while ( nav.MoveToNextNamespace(XPathNamespaceScope.Local) );
                }
            }
            else if ( 0 == prefix.Length ) {
                // the empty prefix always means empty namespaceUri for attributes
                if ( nav.MoveToAttribute( localname, string.Empty ) )
                    goto FoundMatch;
            }
            else {
                if ( nav.MoveToFirstAttribute() ) {
                    do {
                        if (nav.LocalName == localname && nav.Prefix == prefix)
                            goto FoundMatch;
                    } while (nav.MoveToNextAttribute());
                }
            }
            return false;

        FoundMatch:
            if ( state == State.InReadBinary ) {
                readBinaryHelper.Finish();
                state = savedState;
            }
            MoveToAttr(nav, depth+1);
            return true;
        }

Same methods

XPathNavigatorReader::MoveToAttribute ( string localName, string namespaceName ) : bool