Extensions.XPathSelectElements Metodo

Definizione

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

Overload

Nome Descrizione
XPathSelectElements(XNode, String)

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Seleziona una raccolta di elementi usando un'espressione XPath, risolvendo i prefissi dello spazio dei nomi usando l'oggetto specificato IXmlNamespaceResolver.

Commenti

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione xml XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

XPathSelectElements(XNode, String)

Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression);
static member XPathSelectElements : System.Xml.Linq.XNode * string -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String) As IEnumerable(Of XElement)

Parametri

node
XNode

Oggetto XNode in cui valutare l'espressione XPath.

expression
String

Oggetto String contenente un'espressione XPath.

Valori restituiti

Oggetto IEnumerable<T> di XElement contenente gli elementi selezionati.

Esempio

Nell'esempio seguente viene creato un piccolo albero XML e viene XPathSelectElements utilizzato per selezionare un set di elementi.

                XElement root = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child1", 2),
    new XElement("Child1", 3),
    new XElement("Child2", 4),
    new XElement("Child2", 5),
    new XElement("Child2", 6)
);
IEnumerable<XElement> list = root.XPathSelectElements("./Child2");
foreach (XElement el in list)
    Console.WriteLine(el);
                Dim root As XElement = _
    <Root>
        <Child1>1</Child1>
        <Child1>2</Child1>
        <Child1>3</Child1>
        <Child2>4</Child2>
        <Child2>5</Child2>
        <Child2>6</Child2>
    </Root>
Dim list As IEnumerable(Of XElement) = root.XPathSelectElements("./Child2")
For Each el As XElement In list
    Console.WriteLine(el)
Next

In questo esempio viene generato l'output seguente:

<Child2>4</Child2>
<Child2>5</Child2>
<Child2>6</Child2>

Commenti

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione xml XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

Si applica a

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs

Seleziona una raccolta di elementi usando un'espressione XPath, risolvendo i prefissi dello spazio dei nomi usando l'oggetto specificato IXmlNamespaceResolver.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver? resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathSelectElements : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As IEnumerable(Of XElement)

Parametri

node
XNode

Oggetto XNode in cui valutare l'espressione XPath.

expression
String

Oggetto String contenente un'espressione XPath.

resolver
IXmlNamespaceResolver

Oggetto IXmlNamespaceResolver per i prefissi dello spazio dei nomi nell'espressione XPath.

Valori restituiti

Oggetto IEnumerable<T> di XElement contenente gli elementi selezionati.

Esempio

In questo esempio viene creato un albero XML contenente uno spazio dei nomi. Usa un oggetto XmlReader per leggere il documento XML. Ottiene quindi un XmlNameTable oggetto da XmlReadere da XmlNamespaceManagerXmlNameTable. Usa quando XmlNamespaceManager si seleziona l'elenco di elementi.

                string markup = @"
<aw:Root xmlns:aw='http://www.adventure-works.com'>
    <aw:Child1>child one data 1</aw:Child1>
    <aw:Child1>child one data 2</aw:Child1>
    <aw:Child1>child one data 3</aw:Child1>
    <aw:Child2>child two data 4</aw:Child2>
    <aw:Child2>child two data 5</aw:Child2>
    <aw:Child2>child two data 6</aw:Child2>
</aw:Root>";
XmlReader reader = XmlReader.Create(new StringReader(markup));
XElement root = XElement.Load(reader);
XmlNameTable nameTable = reader.NameTable;
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com");
IEnumerable<XElement> elements = root.XPathSelectElements("./aw:Child1", namespaceManager);
foreach (XElement el in elements)
    Console.WriteLine(el);
                Dim markup As XElement = _
<aw:Root xmlns:aw="http://www.adventure-works.com">
    <aw:Child1>child one data 1</aw:Child1>
    <aw:Child1>child one data 2</aw:Child1>
    <aw:Child1>child one data 3</aw:Child1>
    <aw:Child2>child two data 4</aw:Child2>
    <aw:Child2>child two data 5</aw:Child2>
    <aw:Child2>child two data 6</aw:Child2>
</aw:Root>
Dim reader As XmlReader = markup.CreateReader
Dim nameTable As XmlNameTable = reader.NameTable
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nameTable)
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com")
Dim elements As IEnumerable(Of XElement) = markup.XPathSelectElements("./aw:Child1", namespaceManager)
For Each el As XElement In elements
    Console.WriteLine(el)
Next

In questo esempio viene generato l'output seguente:

<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 1</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 2</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 3</aw:Child1>

Commenti

È possibile usare questo metodo per valutare le espressioni XPath contenenti prefissi dello spazio dei nomi.

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione xml XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

Si applica a