XPathNavigator.Select Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memilih kumpulan simpul, menggunakan ekspresi JalurX yang ditentukan.
Overload
Select(String) |
Memilih kumpulan simpul, menggunakan ekspresi JalurX yang ditentukan. |
Select(XPathExpression) |
Memilih set simpul menggunakan yang ditentukan XPathExpression. |
Select(String, IXmlNamespaceResolver) |
Memilih kumpulan simpul menggunakan ekspresi JalurX yang ditentukan dengan IXmlNamespaceResolver objek yang ditentukan untuk mengatasi awalan namespace. |
Select(String)
- Sumber:
- XPathNavigator.cs
- Sumber:
- XPathNavigator.cs
- Sumber:
- XPathNavigator.cs
Memilih kumpulan simpul, menggunakan ekspresi JalurX 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
Mengembalikan
Menunjuk XPathNodeIterator ke set simpul yang dipilih.
Pengecualian
Ekspresi JalurX berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.
Ekspresi JalurX tidak valid.
Contoh
Contoh berikut menggunakan Select metode untuk memilih set simpul.
XPathDocument^ document = gcnew 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);
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 menggunakan file books.xml
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 untuk XPathNodeIterator melakukan iterasi melalui set simpul yang dipilih.
Kode C# berikut berulang di atas 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 saat menggunakan metode .Select
Anda masih dapat menggunakan salah XPathNavigator satu metode navigasi objek untuk berpindah dalam XPathNavigator. Metode XPathNavigator navigasi independen dari simpul yang dipilih di XPathNodeIterator.
Panggilan di masa mendatang ke Select metode mengembalikan objek baru XPathNodeIterator yang menunjuk ke kumpulan simpul yang dipilih yang cocok dengan panggilan baru Select . Kedua XPathNodeIterator objek benar-benar independen satu sama lain.
Jika ekspresi JalurX memerlukan resolusi namespace, gunakan Select kelebihan beban, yang mengambil XPathExpression sebagai argumennya.
Metode ini tidak berpengaruh pada status XPathNavigator.
Lihat juga
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Berlaku untuk
Select(XPathExpression)
- 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 JalurX yang dikompilasi.
Mengembalikan
Yang XPathNodeIterator menunjuk ke set simpul yang dipilih.
Pengecualian
Ekspresi JalurX berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.
Ekspresi JalurX tidak valid.
Contoh
Contoh berikut menggunakan Select metode untuk memilih set simpul.
XPathDocument^ document = gcnew 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);
}
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 menggunakan file books.xml
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 di atas 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 saat menggunakan metode .Select
Anda masih dapat menggunakan salah XPathNavigator satu metode navigasi objek untuk berpindah dalam XPathNavigator. Metode XPathNavigator navigasi independen dari simpul yang dipilih di XPathNodeIterator.
Panggilan di masa mendatang ke Select metode mengembalikan objek baru XPathNodeIterator yang menunjuk ke kumpulan simpul yang dipilih yang cocok dengan panggilan baru Select . Kedua XPathNodeIterator objek benar-benar independen satu sama lain.
XPathExpression Jika memerlukan resolusi namespace layanan, pasangan URI awalan dan namespace harus ditambahkan ke XmlNamespaceManager, dan SetContext metode harus dipanggil untuk menentukan XmlNamespaceManager yang akan digunakan untuk resolusi namespace.
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);
Catatan
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
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Berlaku untuk
Select(String, IXmlNamespaceResolver)
- Sumber:
- XPathNavigator.cs
- Sumber:
- XPathNavigator.cs
- Sumber:
- XPathNavigator.cs
Memilih kumpulan simpul menggunakan ekspresi JalurX 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
- resolver
- IXmlNamespaceResolver
Objek yang IXmlNamespaceResolver digunakan untuk mengatasi awalan namespace.
Mengembalikan
Yang XPathNodeIterator menunjuk ke set simpul yang dipilih.
Pengecualian
Ekspresi JalurX berisi kesalahan atau jenis pengembaliannya bukan kumpulan simpul.
Ekspresi JalurX tidak valid.
Contoh
Contoh berikut mengilustrasikan pemilihan kumpulan simpul menggunakan Select metode dengan XmlNamespaceManager objek yang ditentukan untuk mengatasi awalan namespace dalam ekspresi JalurX.
XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();
XmlNamespaceManager^ manager = gcnew 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);
}
}
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 menggunakan file contosoBooks.xml
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>