Extensions.XPathSelectElements Metodo

Definizione

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

Overload

XPathSelectElements(XNode, String)

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Viene selezionata una raccolta di elementi utilizzando un'espressione XPath e risolvendo i prefissi degli spazi dei nomi tramite l'oggetto IXmlNamespaceResolver specificato.

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

Seleziona una raccolta di elementi utilizzando un'espressione XPath.

public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression);

Parametri

node
XNode

XNode sul quale valutare l'espressione XPath.

expression
String

String contenente un'espressione XPath.

Restituisce

IEnumerable<T> di XElement contenente gli elementi selezionati.

Esempio

Nell'esempio seguente viene creata un piccolo albero XML e viene usato XPathSelectElements 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);  

Nell'esempio viene prodotto 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

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

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

Viene selezionata una raccolta di elementi utilizzando un'espressione XPath e risolvendo i prefissi degli spazi dei nomi tramite l'oggetto IXmlNamespaceResolver specificato.

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

Parametri

node
XNode

XNode sul quale valutare l'espressione XPath.

expression
String

String contenente un'espressione XPath.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolver per i prefissi degli spazi dei nomi nell'espressione XPath.

Restituisce

IEnumerable<T> di XElement contenente gli elementi selezionati.

Esempio

In questo esempio viene creato un albero XML contenente uno spazio dei nomi. Per leggere il documento XML viene usato XmlReader. Quindi si ottiene XmlNameTable da XmlReader e XmlNamespaceManager da XmlNameTable. 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);  

Nell'esempio viene prodotto 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 utilizzare 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

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1