XPathNavigator.Select Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Seleziona un set di nodi usando l'espressione XPath specificata.
Overload
| Nome | Descrizione |
|---|---|
| Select(String) |
Seleziona un set di nodi usando l'espressione XPath specificata. |
| Select(XPathExpression) |
Seleziona un set di nodi usando l'oggetto specificato XPathExpression. |
| Select(String, IXmlNamespaceResolver) |
Seleziona un set di nodi usando l'espressione XPath specificata con l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi dello spazio dei nomi. |
Select(String)
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Seleziona un set di nodi usando l'espressione XPath specificata.
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
Parametri
Valori restituiti
Oggetto XPathNodeIterator che punta al set di nodi selezionato.
Eccezioni
L'espressione XPath contiene un errore o il relativo tipo restituito non è un set di nodi.
L'espressione XPath non è valida.
Esempio
Nell'esempio seguente viene usato il Select metodo per selezionare un set di nodi.
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
L'esempio accetta il books.xml file come 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>
Commenti
Il contesto per la selezione è la posizione di XPathNavigator quando viene chiamato questo metodo. Dopo aver chiamato questo metodo, l'oggetto XPathNodeIterator restituito rappresenta il set di nodi selezionati. Usare MoveNext il metodo dell'oggetto XPathNodeIterator per scorrere il set di nodi selezionato.
Il codice C# seguente esegue l'iterazione del set selezionato di nodi.
XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext())
{
Console.WriteLine(Iterator.Current.Name);
}
Di seguito sono riportate note importanti da considerare quando si usa il Select metodo .
È comunque possibile usare uno dei XPathNavigator metodi di spostamento dell'oggetto per spostarsi all'interno di XPathNavigator. I XPathNavigator metodi di spostamento sono indipendenti dai nodi selezionati in XPathNodeIterator.
Le chiamate future al Select metodo restituiscono un nuovo XPathNodeIterator oggetto che punta al set selezionato di nodi che corrisponde alla nuova Select chiamata. I due XPathNodeIterator oggetti sono completamente indipendenti l'uno dall'altro.
Se l'espressione XPath richiede la risoluzione dello spazio dei nomi, usare l'overload Select , che accetta come XPathExpression argomento .
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Vedi anche
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Si applica a
Select(XPathExpression)
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Seleziona un set di nodi usando l'oggetto specificato 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
Parametri
- expr
- XPathExpression
Oggetto XPathExpression contenente la query XPath compilata.
Valori restituiti
Oggetto XPathNodeIterator che punta al set di nodi selezionato.
Eccezioni
L'espressione XPath contiene un errore o il relativo tipo restituito non è un set di nodi.
L'espressione XPath non è valida.
Esempio
Nell'esempio seguente viene usato il Select metodo per selezionare un set di nodi.
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
L'esempio accetta il books.xml file come 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>
Commenti
Il contesto per la selezione è la posizione di XPathNavigator quando è stato chiamato questo metodo. Dopo aver chiamato questo metodo, l'oggetto XPathNodeIterator restituito rappresenta il set di nodi selezionati. Usare MoveNext per XPathNodeIterator scorrere il set di nodi selezionato.
Il codice C# seguente esegue l'iterazione del set selezionato di nodi.
XPathNodeIterator ni = nav.Select(expr);
while (ni.MoveNext())
{
Console.WriteLine(ni.Current.Name);
}
Di seguito sono riportate note importanti da considerare quando si usa il Select metodo .
È comunque possibile usare uno dei XPathNavigator metodi di spostamento dell'oggetto per spostarsi all'interno di XPathNavigator. I XPathNavigator metodi di spostamento sono indipendenti dai nodi selezionati in XPathNodeIterator.
Le chiamate future al Select metodo restituiscono un nuovo XPathNodeIterator oggetto che punta al set selezionato di nodi che corrisponde alla nuova Select chiamata. I due XPathNodeIterator oggetti sono completamente indipendenti l'uno dall'altro.
Se richiede la XPathExpression risoluzione dello spazio dei nomi, è necessario aggiungere la coppia di prefissi e URI dello spazio dei nomi a un XmlNamespaceManagere il SetContext metodo deve essere chiamato per specificare l'oggetto da usare per la XmlNamespaceManager risoluzione dello spazio dei nomi.
Si supponga, ad esempio, che il documento contenga i nodi XML seguenti.
<bookstore xmlns:bk='urn:samples'>
<book bk:ISBN='1-325-0980'>
<title>Pride And Prejudice</title>
</book>
</bookstore>
In questo caso, il codice C# seguente seleziona il bk:ISBN nodo.
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 Se non include un prefisso, si presuppone che l'URI dello spazio dei nomi sia lo spazio dei nomi vuoto. Se il codice XML include uno spazio dei nomi predefinito, è comunque necessario usare il SetContext metodo e specificare un XmlNamespaceManager oggetto contenente un prefisso e un URI dello spazio dei nomi per gestire lo spazio dei nomi predefinito.
Si supponga, ad esempio, di avere il codice XML seguente.
<bookstore xmlns="http://www.lucernepublishing.com">
<book>
<title>Pride And Prejudice</title>
</book>
</bookstore>
In questo caso, il codice C# seguente seleziona tutti i nodi libro:
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);
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Vedi anche
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Si applica a
Select(String, IXmlNamespaceResolver)
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Seleziona un set di nodi usando l'espressione XPath specificata con l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi dello spazio dei nomi.
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
Parametri
- resolver
- IXmlNamespaceResolver
Oggetto IXmlNamespaceResolver utilizzato per risolvere i prefissi dello spazio dei nomi.
Valori restituiti
Oggetto XPathNodeIterator che punta al set di nodi selezionato.
Eccezioni
L'espressione XPath contiene un errore o il relativo tipo restituito non è un set di nodi.
L'espressione XPath non è valida.
Esempio
Nell'esempio seguente viene illustrata la selezione di un set di nodi usando il Select metodo con l'oggetto XmlNamespaceManager specificato per risolvere i prefissi dello spazio dei nomi nell'espressione 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
L'esempio accetta il contosoBooks.xml file come 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>