XPathNavigator.Name Propriedade

Definição

Quando é substituído em uma classe derivada, obtém o nome qualificado do nó atual.When overridden in a derived class, gets the qualified name of the current node.

public:
 abstract property System::String ^ Name { System::String ^ get(); };
public abstract string Name { get; }
member this.Name : string
Public MustOverride ReadOnly Property Name As String

Valor da propriedade

String

A String que contém o Name qualificado do nó atual ou Empty se o nó atual não tem um nome (por exemplo, nós de texto ou comentário).A String that contains the qualified Name of the current node, or Empty if the current node does not have a name (for example, text or comment nodes).

Exemplos

O exemplo a seguir itera na árvore de nó recursivamente e exibe informações sobre Element nós e Text .The following example iterates over the node tree recursively, and displays information about Element and Text nodes.

static void XPathNavigatorMethods_MoveToNext()
{
    
    XPathDocument^ document = gcnew XPathDocument("books.xml");
    XPathNavigator^ navigator = document->CreateNavigator();
    XPathNodeIterator^ nodeset = navigator->Select("descendant::book[author/last-name='Melville']");

    while (nodeset->MoveNext())
    {
        // Clone iterator here when working with it.
        RecursiveWalk(nodeset->Current->Clone());
    }
}

static void RecursiveWalk(XPathNavigator^ navigator)
{
    switch (navigator->NodeType)
    {
    case XPathNodeType::Element:
        if (navigator->Prefix == String::Empty)
                Console::WriteLine("<{0}>", navigator->LocalName);
            else
        Console::Write("<{0}:{1}>", navigator->Prefix, navigator->LocalName);
                Console::WriteLine("\t" + navigator->NamespaceURI);
            break;
    case XPathNodeType::Text:
            Console::WriteLine("\t" + navigator->Value);
            break;
    }

    if (navigator->MoveToFirstChild())
    {
        do
        {
            RecursiveWalk(navigator);
        } while (navigator->MoveToNext());

        navigator->MoveToParent();
        if (navigator->NodeType == XPathNodeType::Element)
            Console::WriteLine("</{0}>", navigator->Name);
    }
    else
    {
        if (navigator->NodeType == XPathNodeType::Element)
        {
            Console::WriteLine("</{0}>", navigator->Name);
       }
    }
}
static void XPathNavigatorMethods_MoveToNext()
{

    XPathDocument document = new XPathDocument("books.xml");
    XPathNavigator navigator = document.CreateNavigator();
    XPathNodeIterator nodeset = navigator.Select("descendant::book[author/last-name='Melville']");

    while (nodeset.MoveNext())
    {
        // Clone iterator here when working with it.
        RecursiveWalk(nodeset.Current.Clone());
    }
}

public static void RecursiveWalk(XPathNavigator navigator)
{
    switch (navigator.NodeType)
    {
        case XPathNodeType.Element:
            if (string.IsNullOrEmpty(navigator.Prefix))
                Console.WriteLine("<{0}>", navigator.LocalName);
            else
                Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName);
            Console.WriteLine("\t" + navigator.NamespaceURI);
            break;
        case XPathNodeType.Text:
            Console.WriteLine("\t" + navigator.Value);
            break;
    }

    if (navigator.MoveToFirstChild())
    {
        do
        {
            RecursiveWalk(navigator);
        } while (navigator.MoveToNext());

        navigator.MoveToParent();
        if (navigator.NodeType == XPathNodeType.Element)
            Console.WriteLine("</{0}>", navigator.Name);
    }
    else
    {
        if (navigator.NodeType == XPathNodeType.Element)
        {
            Console.WriteLine("</{0}>", navigator.Name);
        }
    }
}
Shared Sub XPathNavigatorMethods_MoveToNext()

    Dim document As XPathDocument = New XPathDocument("books.xml")
    Dim navigator As XPathNavigator = document.CreateNavigator()
    Dim nodeset As XPathNodeIterator = navigator.Select("descendant::book[author/last-name='Melville']")

    While nodeset.MoveNext()
        ' Clone iterator here when working with it.
        RecursiveWalk(nodeset.Current.Clone())
    End While

End Sub

Shared Sub RecursiveWalk(ByVal navigator As XPathNavigator)

    Select Case navigator.NodeType
        Case XPathNodeType.Element
            If navigator.Prefix = String.Empty Then
                Console.WriteLine("<{0}>", navigator.LocalName)
            Else
                Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName)
                Console.WriteLine(vbTab + navigator.NamespaceURI)
            End If
        Case XPathNodeType.Text
            Console.WriteLine(vbTab + navigator.Value)
    End Select

    If navigator.MoveToFirstChild() Then
        Do
            RecursiveWalk(navigator)
        Loop While (navigator.MoveToNext())

        navigator.MoveToParent()
        If (navigator.NodeType = XPathNodeType.Element) Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    Else
        If navigator.NodeType = XPathNodeType.Element Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    End If

End Sub

O exemplo usa o arquivo books.xml como entrada.The example takes the books.xml file as an input.

<?xml version="1.0" encoding="utf-8" ?>   
<bookstore>  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Comentários

O Name retornado depende do XPathNodeType do nó atual.The Name returned depends on the XPathNodeType of the current node. Por exemplo, o nome do <bk:book> elemento é bk:book .For example, the name for the <bk:book> element is bk:book.

A tabela a seguir lista o valor retornado pela Name propriedade, com base no XPathNodeType do nó atual.The following table lists the value returned by the Name property, based on the XPathNodeType of the current node.

XPathNodeTypeXPathNodeType Valor da propriedadeProperty Value
Element O nome qualificado do Element .The qualified name of the Element. No exemplo a seguir, <bk:book> , o nome do nó do elemento é bk:book .In the following example, <bk:book>, the name of the element node is bk:book.
Attribute O nome qualificado do Attribute .The qualified name of the Attribute. No exemplo a seguir, <book bk:genre='novel'> , o nome do Attribute nó é bk:genre .In the following example, <book bk:genre='novel'>, the name of the Attribute node is bk:genre.
Namespace O prefixo associado ao URI do namespace.The prefix associated with the namespace URI. Na seguinte declaração de namespace, xmlns:bk='urn:samples' , a Name propriedade retorna bk .In the following namespace declaration, xmlns:bk='urn:samples', the Name property returns bk.
ProcessingInstruction O destino do ProcessingInstruction .The target of the ProcessingInstruction. No exemplo a seguir, <?xml-stylesheet type='text/xsl' href= 'books.xsl'?> , a Name propriedade retorna xml-stylesheet .In the following example, <?xml-stylesheet type='text/xsl' href= 'books.xsl'?>, the Name property returns xml-stylesheet.
Todos os outros XPathNodeType nósAll other XPathNodeType nodes String.Empty.String.Empty.

Aplica-se a

Confira também