XPathNavigator.Select Metode

Definisi

Memilih set simpul, menggunakan ekspresi XPath yang ditentukan.

Overload

Nama Deskripsi
Select(String)

Memilih set simpul, menggunakan ekspresi XPath yang ditentukan.

Select(XPathExpression)

Memilih set simpul menggunakan yang ditentukan XPathExpression.

Select(String, IXmlNamespaceResolver)

Memilih kumpulan simpul menggunakan ekspresi XPath yang ditentukan dengan IXmlNamespaceResolver objek yang ditentukan untuk mengatasi awalan namespace.

Select(String)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Memilih set simpul, menggunakan ekspresi XPath yang ditentukan.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::String ^ xpath);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath);
abstract member Select : string -> System.Xml.XPath.XPathNodeIterator
override this.Select : string -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (xpath As String) As XPathNodeIterator

Parameter

xpath
String

Mewakili String ekspresi XPath.

Mengembalikan

Menunjuk XPathNodeIterator ke set simpul yang dipilih.

Pengecualian

Ekspresi XPath berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut menggunakan Select metode untuk memilih set simpul.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
    Console.WriteLine(nodesText.Current.Value);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

Contoh mengambil books.xml file sebagai 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>

Keterangan

Konteks untuk pemilihan adalah posisi XPathNavigator ketika metode ini dipanggil. Setelah memanggil metode ini, yang XPathNodeIterator dikembalikan mewakili kumpulan simpul yang dipilih. Gunakan MoveNext metode XPathNodeIterator untuk melakukan iterasi pada set simpul yang dipilih.

Kode C# berikut berulang melalui kumpulan simpul yang dipilih.

XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext())
{
    Console.WriteLine(Iterator.Current.Name);
}

Berikut ini adalah catatan penting yang perlu dipertimbangkan Select saat menggunakan metode .

Lihat juga

Berlaku untuk

Select(XPathExpression)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Memilih set simpul menggunakan yang ditentukan XPathExpression.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::Xml::XPath::XPathExpression ^ expr);
public virtual System.Xml.XPath.XPathNodeIterator Select(System.Xml.XPath.XPathExpression expr);
abstract member Select : System.Xml.XPath.XPathExpression -> System.Xml.XPath.XPathNodeIterator
override this.Select : System.Xml.XPath.XPathExpression -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (expr As XPathExpression) As XPathNodeIterator

Parameter

expr
XPathExpression

Objek XPathExpression yang berisi kueri XPath yang dikompilasi.

Mengembalikan

Yang XPathNodeIterator menunjuk ke set simpul yang dipilih.

Pengecualian

Ekspresi XPath berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut menggunakan Select metode untuk memilih set simpul.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathExpression query = navigator.Compile("/bookstore/book");
XPathNodeIterator nodes = navigator.Select(query);
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
{
    Console.WriteLine(nodesText.Current.Value);
}
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim query As XPathExpression = navigator.Compile("/bookstore/book")
Dim nodes As XPathNodeIterator = navigator.Select(query)
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

Contoh mengambil books.xml file sebagai 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>

Keterangan

Konteks untuk pemilihan adalah posisi XPathNavigator ketika Anda memanggil metode ini. Setelah Anda memanggil metode ini, yang XPathNodeIterator dikembalikan mewakili kumpulan simpul yang dipilih. Gunakan MoveNext pada XPathNodeIterator untuk melakukan iterasi pada set simpul yang dipilih.

Kode C# berikut berulang melalui kumpulan simpul yang dipilih.

XPathNodeIterator ni = nav.Select(expr);
while (ni.MoveNext())
{
    Console.WriteLine(ni.Current.Name);
}

Berikut ini adalah catatan penting yang perlu dipertimbangkan Select saat menggunakan metode .

Misalnya, dokumen berisi simpul XML berikut.

<bookstore xmlns:bk='urn:samples'>
    <book bk:ISBN='1-325-0980'>
        <title>Pride And Prejudice</title>
    </book>
</bookstore>

Dalam hal ini, kode C# berikut memilih simpul bk:ISBN .

XPathExpression expr = nav.Compile("book/@bk:ISBN");
XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable());
mngr.AddNamespace("bk","urn:samples");
expr.SetContext(mngr);
XPathNodeIterator ni = nav.Select(expr);

Note

XPathExpression Jika tidak menyertakan awalan, diasumsikan bahwa URI namespace adalah namespace kosong. Jika XML Anda menyertakan namespace default, Anda masih harus menggunakan SetContext metode dan menyediakan XmlNamespaceManager yang berisi awalan dan namespace URI untuk menangani namespace default.

Misalnya, Anda memiliki XML berikut.

<bookstore xmlns="http://www.lucernepublishing.com">
    <book>
        <title>Pride And Prejudice</title>
    </book>
</bookstore>

Dalam hal ini, kode C# berikut memilih semua simpul buku:

XmlNamespaceManager nsmgr = new XmlNamespaceManager(nav.NameTable);
nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
XPathExpression expr;
expr = nav.Compile("//ab:book");
expr.SetContext(nsmgr);
XPathNodeIterator ni = nav.Select(expr);

Metode ini tidak berpengaruh pada status XPathNavigator.

Lihat juga

Berlaku untuk

Select(String, IXmlNamespaceResolver)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Memilih kumpulan simpul menggunakan ekspresi XPath yang ditentukan dengan IXmlNamespaceResolver objek yang ditentukan untuk mengatasi awalan namespace.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::String ^ xpath, System::Xml::IXmlNamespaceResolver ^ resolver);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath, System.Xml.IXmlNamespaceResolver? resolver);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath, System.Xml.IXmlNamespaceResolver resolver);
abstract member Select : string * System.Xml.IXmlNamespaceResolver -> System.Xml.XPath.XPathNodeIterator
override this.Select : string * System.Xml.IXmlNamespaceResolver -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (xpath As String, resolver As IXmlNamespaceResolver) As XPathNodeIterator

Parameter

xpath
String

Mewakili String ekspresi XPath.

resolver
IXmlNamespaceResolver

Objek yang IXmlNamespaceResolver digunakan untuk mengatasi awalan namespace layanan.

Mengembalikan

Yang XPathNodeIterator menunjuk ke set simpul yang dipilih.

Pengecualian

Ekspresi XPath berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut mengilustrasikan pemilihan kumpulan simpul menggunakan Select metode dengan XmlNamespaceManager objek yang ditentukan untuk mengatasi awalan namespace dalam ekspresi XPath.

XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("bk", "http://www.contoso.com/books");

XPathNodeIterator nodes = navigator.Select("/bk:bookstore/bk:book/bk:price", manager);
// Move to the first node bk:price node
if(nodes.MoveNext())
{
    // now nodes.Current points to the first selected node
    XPathNavigator nodesNavigator = nodes.Current;

    //select all the descendants of the current price node
    XPathNodeIterator nodesText =
       nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

    while(nodesText.MoveNext())
    {
       Console.WriteLine(nodesText.Current.Value);
    }
}
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")

Dim nodes As XPathNodeIterator = navigator.Select("/bk:bookstore/bk:book/bk:price", manager)
' Move to the first node bk:price node.
If (nodes.MoveNext()) Then
    ' Now nodes.Current points to the first selected node.
    Dim nodesNavigator As XPathNavigator = nodes.Current

    ' Select all the descendants of the current price node.
    Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

    While nodesText.MoveNext()
        Console.WriteLine(nodesText.Current.Value)
    End While
End If

Contoh mengambil contosoBooks.xml file sebagai input.

<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <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>

Berlaku untuk