XPathNavigator.Select Metoda

Definice

Vybere sadu uzlů pomocí zadaného výrazu XPath.

Přetížení

Name Description
Select(String)

Vybere sadu uzlů pomocí zadaného výrazu XPath.

Select(XPathExpression)

Vybere sadu uzlů pomocí zadaného XPathExpressionparametru .

Select(String, IXmlNamespaceResolver)

Vybere sadu uzlů pomocí zadaného výrazu XPath s objektem IXmlNamespaceResolver určeným k překladu předpon oboru názvů.

Select(String)

Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs

Vybere sadu uzlů pomocí zadaného výrazu XPath.

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

Parametry

xpath
String

Představuje String výraz XPath.

Návraty

Odkazující XPathNodeIterator na vybranou sadu uzlů.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.

Výraz XPath není platný.

Příklady

Následující příklad používá metodu Select k výběru sady uzlů.

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

Příklad vezme books.xml soubor jako vstup.

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

Poznámky

Kontext pro výběr je pozice XPathNavigator při zavolání této metody. Po volání této metody XPathNodeIterator představuje vrácená sada vybraných uzlů. Použijte MoveNext metodu XPathNodeIterator iterace nad vybranou sadou uzlů.

Následující kód jazyka C# iteruje přes vybranou sadu uzlů.

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

Při použití Select této metody je potřeba vzít v úvahu následující důležité poznámky.

Viz také

Platí pro

Select(XPathExpression)

Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs

Vybere sadu uzlů pomocí zadaného XPathExpressionparametru .

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

Parametry

expr
XPathExpression

Objekt XPathExpression obsahující zkompilovaný dotaz XPath.

Návraty

Odkazující XPathNodeIterator na vybranou sadu uzlů.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.

Výraz XPath není platný.

Příklady

Následující příklad používá metodu Select k výběru sady uzlů.

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

Příklad vezme books.xml soubor jako vstup.

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

Poznámky

Kontext pro výběr je pozice XPathNavigator při zavolání této metody. Po volání této metody XPathNodeIterator vrácené představuje sadu vybraných uzlů. MoveNext Používá XPathNodeIterator se k iteraci nad vybranou sadou uzlů.

Následující kód jazyka C# iteruje přes vybranou sadu uzlů.

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

Při použití Select této metody je potřeba vzít v úvahu následující důležité poznámky.

Předpokládejme například, že dokument obsahuje následující uzly XML.

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

V tomto případě následující kód jazyka bk:ISBN C# vybere uzel.

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

Pokud předpona XPathExpression neobsahuje, předpokládá se, že identifikátor URI oboru názvů je prázdný obor názvů. Pokud xml obsahuje výchozí obor názvů, musíte přesto použít metodu SetContext a zadat XmlNamespaceManager , která obsahuje předponu a identifikátor URI oboru názvů pro zpracování výchozího oboru názvů.

Předpokládejme například, že máte následující KÓD XML.

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

V tomto případě vybere následující kód jazyka C#všechny uzly knih:

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

Tato metoda nemá žádný vliv na stav XPathNavigator.

Viz také

Platí pro

Select(String, IXmlNamespaceResolver)

Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs
Zdroj:
XPathNavigator.cs

Vybere sadu uzlů pomocí zadaného výrazu XPath s objektem IXmlNamespaceResolver určeným k překladu předpon oboru názvů.

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

Parametry

xpath
String

Představuje String výraz XPath.

resolver
IXmlNamespaceResolver

Objekt IXmlNamespaceResolver použitý k překladu předpon oboru názvů.

Návraty

Odkazující XPathNodeIterator na vybranou sadu uzlů.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.

Výraz XPath není platný.

Příklady

Následující příklad znázorňuje výběr sady uzlů pomocí Select metody s objektem XmlNamespaceManager zadaným k překladu předpon oboru názvů ve výrazu 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

Příklad vezme contosoBooks.xml soubor jako vstup.

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

Platí pro