XPathNavigator.Select Metoda

Definice

Vybere sadu uzlů pomocí zadaného výrazu XPath.Selects a node set, using the specified XPath expression.

Přetížení

Select(String)

Vybere sadu uzlů pomocí zadaného výrazu XPath.Selects a node set, using the specified XPath expression.

Select(XPathExpression)

Vybere sadu uzlů pomocí zadaného typu XPathExpression .Selects a node set using the specified XPathExpression.

Select(String, IXmlNamespaceResolver)

Vybere sadu uzlů pomocí zadaného výrazu XPath s IXmlNamespaceResolver objektem určeným k překladu předpon oboru názvů.Selects a node set using the specified XPath expression with the IXmlNamespaceResolver object specified to resolve namespace prefixes.

Select(String)

Vybere sadu uzlů pomocí zadaného výrazu XPath.Selects a node set, using the specified XPath expression.

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

StringPředstavuje výraz XPath.A String representing an XPath expression.

Návraty

XPathNodeIterator

XPathNodeIteratorUkazující na vybranou sadu uzlů.An XPathNodeIterator pointing to the selected node set.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.The XPath expression contains an error or its return type is not a node set.

Výraz XPath není platný.The XPath expression is not valid.

Příklady

Následující příklad používá Select metodu pro výběr sady uzlů.The following example uses the Select method to select a node set.

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

Tento příklad přebírá books.xml soubor jako vstup.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>  

Poznámky

Kontext pro výběr je pozice XPathNavigator při volání této metody.The context for the selection is the position of the XPathNavigator when this method is called. Po volání této metody XPathNodeIterator představuje vrácená sada vybraných uzlů.After calling this method, the XPathNodeIterator returned represents the set of selected nodes. Použijte MoveNext metodu XPathNodeIterator pro iteraci přes vybranou sadu uzlů.Use MoveNext method of the XPathNodeIterator to iterate over the selected node set.

Následující kód jazyka C# provede iteraci na vybrané sadě uzlů.The following C# code iterates over the selected set of nodes.

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

V následujícím seznamu jsou důležité poznámky, které je potřeba vzít v úvahu při použití Select metody.The following are important notes to consider when using the Select method.

Viz také

Platí pro

Select(XPathExpression)

Vybere sadu uzlů pomocí zadaného typu XPathExpression .Selects a node set using the specified 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

Parametry

expr
XPathExpression

XPathExpressionObjekt obsahující kompilovaný dotaz XPath.An XPathExpression object containing the compiled XPath query.

Návraty

XPathNodeIterator

Objekt XPathNodeIterator , který odkazuje na vybranou sadu uzlů.An XPathNodeIterator that points to the selected node set.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.The XPath expression contains an error or its return type is not a node set.

Výraz XPath není platný.The XPath expression is not valid.

Příklady

Následující příklad používá Select metodu pro výběr sady uzlů.The following example uses the Select method to select a node set.

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

Tento příklad přebírá books.xml soubor jako vstup.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>  

Poznámky

Kontext pro výběr je pozice XPathNavigator při volání této metody.The context for the selection is the position of the XPathNavigator when you called this method. Po volání této metody XPathNodeIterator představuje vrácená sada vybraných uzlů.After you call this method, the XPathNodeIterator returned represents the set of selected nodes. Použijte MoveNext XPathNodeIterator k iterování na vybrané sadě uzlů.Use MoveNext on the XPathNodeIterator to iterate over the selected node set.

Následující kód jazyka C# provede iteraci na vybrané sadě uzlů.The following C# code iterates over the selected set of nodes.

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

V následujícím seznamu jsou důležité poznámky, které je potřeba vzít v úvahu při použití Select metody.The following are important notes to consider when using the Select method.

Předpokládejme například, že dokument obsahuje následující uzly XML.For example, suppose the document contains the following XML nodes.

<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 C# vybere bk:ISBN uzel.In this case, the following C# code selects the bk:ISBN node.

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

Poznámka

Pokud XPathExpression nezahrnuje předponu, předpokládá se, že identifikátor URI oboru názvů je prázdný obor názvů.If the XPathExpression does not include a prefix, it is assumed that the namespace URI is the empty namespace. Pokud váš kód XML obsahuje výchozí obor názvů, je nutné stále používat SetContext metodu a zadat XmlNamespaceManager , který obsahuje předponu a identifikátor URI oboru názvů pro zpracování výchozího oboru názvů.If your XML includes a default namespace, you must still use the SetContext method and provide an XmlNamespaceManager that contains a prefix and namespace URI to handle the default namespace.

Předpokládejme například, že máte následující kód XML.For example, suppose you have the following XML.

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

V tomto případě následující kód jazyka C# vybere všechny uzly knihy:In this case, the following C# code selects all book nodes:

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 .This method has no effect on the state of the XPathNavigator.

Viz také

Platí pro

Select(String, IXmlNamespaceResolver)

Vybere sadu uzlů pomocí zadaného výrazu XPath s IXmlNamespaceResolver objektem určeným k překladu předpon oboru názvů.Selects a node set using the specified XPath expression with the IXmlNamespaceResolver object specified to resolve namespace prefixes.

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

StringPředstavuje výraz XPath.A String representing an XPath expression.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolverObjekt použitý k překladu předpon oboru názvů.The IXmlNamespaceResolver object used to resolve namespace prefixes.

Návraty

XPathNodeIterator

Objekt XPathNodeIterator , který odkazuje na vybranou sadu uzlů.An XPathNodeIterator that points to the selected node set.

Výjimky

Výraz XPath obsahuje chybu nebo jeho návratový typ není sada uzlů.The XPath expression contains an error or its return type is not a node set.

Výraz XPath není platný.The XPath expression is not valid.

Příklady

Následující příklad znázorňuje výběr sady uzlů pomocí Select metody s XmlNamespaceManager objektem určeným k překladu prefixů oboru názvů ve výrazu XPath.The following example illustrates selecting a node set using the Select method with the XmlNamespaceManager object specified to resolve namespace prefixes in the XPath expression.

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

Tento příklad přebírá contosoBooks.xml soubor jako vstup.The example takes the contosoBooks.xml file as an 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>  

Platí pro