XPathNavigator.Select Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie.
Overloads
| Name | Description |
|---|---|
| Select(String) |
Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie. |
| Select(XPathExpression) |
Selecteert een knooppuntset met behulp van de opgegeven XPathExpression. |
| Select(String, IXmlNamespaceResolver) |
Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie met het IXmlNamespaceResolver object dat is opgegeven om voorvoegsels voor naamruimten op te lossen. |
Select(String)
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie.
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
Parameters
Retouren
Een XPathNodeIterator verwijzing naar de geselecteerde knooppuntset.
Uitzonderingen
De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.
De XPath-expressie is ongeldig.
Voorbeelden
In het volgende voorbeeld wordt de Select methode gebruikt om een knooppuntset te selecteren.
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
In het voorbeeld wordt het books.xml bestand als invoer gebruikt.
<?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>
Opmerkingen
De context voor de selectie is de positie van de XPathNavigator methode wanneer deze methode wordt aangeroepen. Nadat u deze methode hebt aangeroepen, vertegenwoordigt de XPathNodeIterator geretourneerde set geselecteerde knooppunten. Gebruik MoveNext de methode voor het XPathNodeIterator herhalen van de geselecteerde knooppuntset.
De volgende C#-code doorloopt de geselecteerde set knooppunten.
XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext())
{
Console.WriteLine(Iterator.Current.Name);
}
Hier volgen belangrijke opmerkingen bij het gebruik van de Select methode.
U kunt nog steeds een van de navigatiemethoden van het XPathNavigator object gebruiken om binnen het XPathNavigatorobject te navigeren. De XPathNavigator navigatiemethoden zijn onafhankelijk van de geselecteerde knooppunten in de XPathNodeIterator.
Toekomstige aanroepen naar de Select methode retourneren een nieuw XPathNodeIterator object dat verwijst naar de geselecteerde set knooppunten die overeenkomen met de nieuwe Select aanroep. De twee XPathNodeIterator objecten zijn volledig onafhankelijk van elkaar.
Als voor de XPath-expressie naamruimteomzetting is vereist, gebruikt u de Select overbelasting, die een XPathExpression als argument gebruikt.
Deze methode heeft geen effect op de status van de XPathNavigator.
Zie ook
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Van toepassing op
Select(XPathExpression)
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
Selecteert een knooppuntset met behulp van de opgegeven 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
Parameters
- expr
- XPathExpression
Een XPathExpression object met de gecompileerde XPath-query.
Retouren
Een XPathNodeIterator die verwijst naar de geselecteerde knooppuntset.
Uitzonderingen
De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.
De XPath-expressie is ongeldig.
Voorbeelden
In het volgende voorbeeld wordt de Select methode gebruikt om een knooppuntset te selecteren.
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
In het voorbeeld wordt het books.xml bestand als invoer gebruikt.
<?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>
Opmerkingen
De context voor de selectie is de positie van de XPathNavigator methode die u aangeroepen hebt. Nadat u deze methode hebt aangeroepen, vertegenwoordigt de XPathNodeIterator geretourneerde set geselecteerde knooppunten. Gebruik MoveNext deze XPathNodeIterator optie om de geselecteerde knooppuntset te herhalen.
De volgende C#-code doorloopt de geselecteerde set knooppunten.
XPathNodeIterator ni = nav.Select(expr);
while (ni.MoveNext())
{
Console.WriteLine(ni.Current.Name);
}
Hier volgen belangrijke opmerkingen bij het gebruik van de Select methode.
U kunt nog steeds een van de navigatiemethoden van het XPathNavigator object gebruiken om binnen het XPathNavigatorobject te navigeren. De XPathNavigator navigatiemethoden zijn onafhankelijk van de geselecteerde knooppunten in de XPathNodeIterator.
Toekomstige aanroepen naar de Select methode retourneren een nieuw XPathNodeIterator object dat verwijst naar de geselecteerde set knooppunten die overeenkomen met de nieuwe Select aanroep. De twee XPathNodeIterator objecten zijn volledig onafhankelijk van elkaar.
Als voor de XPathExpression naamruimteomzetting is vereist, moeten het voorvoegsel en de naamruimte-URI-paar worden toegevoegd aan een XmlNamespaceManageren moet de SetContext methode worden aangeroepen om het XmlNamespaceManager te gebruiken voor naamruimteomzetting op te geven.
Stel dat het document de volgende XML-knooppunten bevat.
<bookstore xmlns:bk='urn:samples'>
<book bk:ISBN='1-325-0980'>
<title>Pride And Prejudice</title>
</book>
</bookstore>
In dit geval selecteert de volgende C#-code het bk:ISBN knooppunt.
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
Als het XPathExpression geen voorvoegsel bevat, wordt ervan uitgegaan dat de naamruimte-URI de lege naamruimte is. Als uw XML een standaardnaamruimte bevat, moet u nog steeds de SetContext methode gebruiken en een XmlNamespaceManager URI met een voorvoegsel en naamruimte-URI opgeven om de standaardnaamruimte te verwerken.
Stel dat u de volgende XML hebt.
<bookstore xmlns="http://www.lucernepublishing.com">
<book>
<title>Pride And Prejudice</title>
</book>
</bookstore>
In dit geval selecteert de volgende C#-code alle boekknooppunten:
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);
Deze methode heeft geen effect op de status van de XPathNavigator.
Zie ook
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Van toepassing op
Select(String, IXmlNamespaceResolver)
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
- Bron:
- XPathNavigator.cs
Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie met het IXmlNamespaceResolver object dat is opgegeven om voorvoegsels voor naamruimten op te lossen.
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
Parameters
- resolver
- IXmlNamespaceResolver
Het IXmlNamespaceResolver object dat wordt gebruikt voor het omzetten van voorvoegsels voor naamruimten.
Retouren
Een XPathNodeIterator die verwijst naar de geselecteerde knooppuntset.
Uitzonderingen
De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.
De XPath-expressie is ongeldig.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een knooppuntset selecteert met behulp van de Select methode met het XmlNamespaceManager object dat is opgegeven om naamruimtevoorvoegsels in de XPath-expressie op te lossen.
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
In het voorbeeld wordt het contosoBooks.xml bestand als invoer gebruikt.
<?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>