XPathNavigator.Name XPathNavigator.Name XPathNavigator.Name XPathNavigator.Name Property

定義

派生クラスでオーバーライドされると、現在のノードの限定名を取得します。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

プロパティ値

現在のノードの修飾 String が格納された Name。現在のノードが名前を持たない場合 (たとえばテキスト ノードまたはコメント ノード) は EmptyA 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).

次の例では、ノードツリーを再帰的に反復処理ElementText 、ノードとノードに関する情報を表示します。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

この例は、books.xml ファイルを入力として使用します。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>  
  

注釈

返さNameれるは、現在XPathNodeTypeのノードのによって異なります。The Name returned depends on the XPathNodeType of the current node. たとえば、 <bk:book>要素の名前はbk:bookです。For example, the name for the <bk:book> element is bk:book.

次の表は、現在Name XPathNodeTypeのノードのに基づいて、プロパティによって返される値を示しています。The following table lists the value returned by the Name property, based on the XPathNodeType of the current node.

XPathNodeTypeXPathNodeType プロパティ値Property Value
Element の限定名ElementThe qualified name of the Element. 次の例<bk:book>では、要素ノードの名前はbk:bookです。In the following example, <bk:book>, the name of the element node is bk:book.
Attribute の限定名AttributeThe qualified name of the Attribute. 次の例<book bk:genre='novel'>では、 Attributeノードの名前はbk:genreです。In the following example, <book bk:genre='novel'>, the name of the Attribute node is bk:genre.
Namespace 名前空間 URI に関連付けられているプレフィックス。The prefix associated with the namespace URI. 次の名前空間宣言xmlns:bk='urn:samples'では、プロパティはbk Nameを返します。In the following namespace declaration, xmlns:bk='urn:samples', the Name property returns bk.
ProcessingInstruction ProcessingInstructionターゲット。The target of the ProcessingInstruction. 次の例<?xml-stylesheet type='text/xsl' href= 'books.xsl'?>では、プロパティNameはをxml-stylesheet返します。In the following example, <?xml-stylesheet type='text/xsl' href= 'books.xsl'?>, the Name property returns xml-stylesheet.
他のXPathNodeTypeすべてのノードAll other XPathNodeType nodes String.EmptyString.Empty.

適用対象

こちらもご覧ください