Freigeben über


XPathNavigator.NamespaceURI-Eigenschaft

Ruft beim Überschreiben in einer abgeleiteten Klasse den Namespace-URI des aktuellen Knotens ab.

Namespace: System.Xml.XPath
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public MustOverride ReadOnly Property NamespaceURI As String
'Usage
Dim instance As XPathNavigator
Dim value As String

value = instance.NamespaceURI
public abstract string NamespaceURI { get; }
public:
virtual property String^ NamespaceURI {
    String^ get () abstract;
}
/** @property */
public abstract String get_NamespaceURI ()
public abstract function get NamespaceURI () : String

Eigenschaftenwert

Ein String, der den Namespace-URI des aktuellen Knotens enthält, oder String.Empty, wenn der aktuelle Knoten keinen Namespace-URI aufweist.

Hinweise

Der zurückgegebene Namespace-URI hängt vom XPathNodeType des aktuellen Knotens ab.

Die NamespaceURI-Eigenschaft gibt z. B. für den Knoten <bk:book xmlns:bk='urn:samples'> den Wert urn:samples zurück.

Nur Element-Knoten und AttributeXPathNodeType-Knoten können über einen Namespace-URI verfügen.

Beispiel

Im folgenden Beispiel wird die Knotenstruktur rekursiv durchlaufen, und es werden Informationen über den Element-Knoten und den Text-Knoten angezeigt.

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
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 (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);
       }
    }
}

Im Beispiel wird die Datei books.xml als Eingabe verwendet.

<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>

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

XPathNavigator-Klasse
XPathNavigator-Member
System.Xml.XPath-Namespace
XPathNodeType
Prefix