XPathNavigator.Select Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Väljer en noduppsättning med det angivna XPath-uttrycket.
Överlagringar
| Name | Description |
|---|---|
| Select(String) |
Väljer en noduppsättning med det angivna XPath-uttrycket. |
| Select(XPathExpression) |
Väljer en noduppsättning med den angivna XPathExpression. |
| Select(String, IXmlNamespaceResolver) |
Väljer en noduppsättning med det angivna XPath-uttrycket med det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix. |
Select(String)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Väljer en noduppsättning med det angivna XPath-uttrycket.
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
Parametrar
Returer
En XPathNodeIterator pekar på den valda noduppsättningen.
Undantag
XPath-uttrycket innehåller ett fel eller så är dess returtyp inte en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel används Select metoden för att välja en noduppsättning.
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
Exemplet tar books.xml filen som indata.
<?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>
Kommentarer
Kontexten för markeringen är positionen XPathNavigator för när den här metoden anropas. När du har anropat den här metoden representerar den XPathNodeIterator returnerade uppsättningen valda noder. Använd MoveNext metoden för XPathNodeIterator att iterera över den valda noduppsättningen.
Följande C#-kod itererar över den valda uppsättningen noder.
XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext())
{
Console.WriteLine(Iterator.Current.Name);
}
Följande är viktiga att tänka på när du använder Select metoden.
Du kan fortfarande använda någon av XPathNavigator objektets navigeringsmetoder för att flytta inom XPathNavigator. Navigeringsmetoderna XPathNavigator är oberoende av de valda noderna i XPathNodeIterator.
Framtida anrop till Select metoden returnerar ett nytt XPathNodeIterator objekt som pekar på den valda uppsättningen noder som matchar det nya Select anropet. De två XPathNodeIterator objekten är helt oberoende av varandra.
Om XPath-uttrycket kräver namnområdesmatchning använder du överlagringen Select , som tar ett XPathExpression som argument.
Den här metoden har ingen effekt på tillståndet för XPathNavigator.
Se även
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Gäller för
Select(XPathExpression)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Väljer en noduppsättning med den angivna 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
Parametrar
- expr
- XPathExpression
Ett XPathExpression objekt som innehåller den kompilerade XPath-frågan.
Returer
En XPathNodeIterator som pekar på den valda noduppsättningen.
Undantag
XPath-uttrycket innehåller ett fel eller så är dess returtyp inte en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel används Select metoden för att välja en noduppsättning.
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
Exemplet tar books.xml filen som indata.
<?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>
Kommentarer
Kontexten för markeringen är positionen för XPathNavigator när du anropade den här metoden. När du har anropat den här metoden representerar den XPathNodeIterator returnerade uppsättningen valda noder. Använd MoveNext på XPathNodeIterator för att iterera över den valda noduppsättningen.
Följande C#-kod itererar över den valda uppsättningen noder.
XPathNodeIterator ni = nav.Select(expr);
while (ni.MoveNext())
{
Console.WriteLine(ni.Current.Name);
}
Följande är viktiga att tänka på när du använder Select metoden.
Du kan fortfarande använda någon av XPathNavigator objektets navigeringsmetoder för att flytta inom XPathNavigator. Navigeringsmetoderna XPathNavigator är oberoende av de valda noderna i XPathNodeIterator.
Framtida anrop till Select metoden returnerar ett nytt XPathNodeIterator objekt som pekar på den valda uppsättningen noder som matchar det nya Select anropet. De två XPathNodeIterator objekten är helt oberoende av varandra.
XPathExpression Om kräver namnområdesmatchning måste prefixet och namnområdes-URI-paret läggas till i en XmlNamespaceManager, och SetContext metoden måste anropas för att ange vilken XmlNamespaceManager som ska användas för namnområdesmatchning.
Anta till exempel att dokumentet innehåller följande XML-noder.
<bookstore xmlns:bk='urn:samples'>
<book bk:ISBN='1-325-0980'>
<title>Pride And Prejudice</title>
</book>
</bookstore>
I det här fallet väljer bk:ISBN följande C#-kod noden.
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 Om inte innehåller ett prefix antas det att namnområdes-URI:n är det tomma namnområdet. Om xml-koden innehåller ett standardnamnområde måste du fortfarande använda SetContext metoden och ange ett XmlNamespaceManager som innehåller ett prefix och en namnområdes-URI för att hantera standardnamnområdet.
Anta till exempel att du har följande XML.
<bookstore xmlns="http://www.lucernepublishing.com">
<book>
<title>Pride And Prejudice</title>
</book>
</bookstore>
I det här fallet väljer följande C#-kod alla boknoder:
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);
Den här metoden har ingen effekt på tillståndet för XPathNavigator.
Se även
- SelectNodes(String)
- SelectSingleNode(String)
- SelectDescendants(XPathNodeType, Boolean)
- SelectChildren(XPathNodeType)
- SelectAncestors(XPathNodeType, Boolean)
Gäller för
Select(String, IXmlNamespaceResolver)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Väljer en noduppsättning med det angivna XPath-uttrycket med det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix.
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
Parametrar
- resolver
- IXmlNamespaceResolver
Det IXmlNamespaceResolver objekt som används för att matcha namnområdesprefix.
Returer
En XPathNodeIterator som pekar på den valda noduppsättningen.
Undantag
XPath-uttrycket innehåller ett fel eller så är dess returtyp inte en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel visas hur du väljer en noduppsättning med hjälp av Select metoden med det XmlNamespaceManager angivna objektet för att matcha namnområdesprefix i XPath-uttrycket.
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
Exemplet tar contosoBooks.xml filen som indata.
<?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>