Extensions.XPathSelectElements Método
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Seleciona uma coleção de elementos usando uma expressão XPath.
XPathSelectElements(XNode, String) |
Seleciona uma coleção de elementos usando uma expressão XPath. |
XPathSelectElements(XNode, String, IXmlNamespaceResolver) |
Seleciona uma coleção de elementos usando uma expressão XPath, resolvendo os prefixos de namespace usando o IXmlNamespaceResolver especificado. |
Embora a ordenação de coleções retornadas não seja especificada na Recomendação XML XPath Language 1.0, esse método de extensão retorna nós na ordem do documento.
Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo inverso, como preceding-sibling
ou ancestor-or-self
.
- Origem:
- XNodeNavigator.cs
- Origem:
- XNodeNavigator.cs
- Origem:
- XNodeNavigator.cs
Seleciona uma coleção de elementos usando uma expressão 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)
Parâmetros
Retornos
Um IEnumerable<T> de XElement que contém os elementos selecionados.
Exemplos
O exemplo a seguir cria uma árvore XML pequena e usa XPathSelectElements para selecionar um conjunto de elementos.
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
Esse exemplo gera a saída a seguir:
<Child2>4</Child2>
<Child2>5</Child2>
<Child2>6</Child2>
Comentários
Embora a ordenação de coleções retornadas não seja especificada na Recomendação XML XPath Language 1.0, esse método de extensão retorna nós na ordem do documento.
Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo inverso, como preceding-sibling
ou ancestor-or-self
.
Aplica-se a
.NET 9 e outras versões
Produto | Versões |
---|---|
.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 |
- Origem:
- XNodeNavigator.cs
- Origem:
- XNodeNavigator.cs
- Origem:
- XNodeNavigator.cs
Seleciona uma coleção de elementos usando uma expressão XPath, resolvendo os prefixos de namespace usando o IXmlNamespaceResolver especificado.
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)
Parâmetros
- resolver
- IXmlNamespaceResolver
Um IXmlNamespaceResolver para os prefixos de namespace na expressão XPath.
Retornos
Um IEnumerable<T> de XElement que contém os elementos selecionados.
Exemplos
Este exemplo cria uma árvore XML que contém um namespace. Usa XmlReader para ler o documento XML. Então obtém XmlNameTable de XmlReader, e XmlNamespaceManager de XmlNameTable. Ele usa o XmlNamespaceManager ao selecionar a lista de elementos.
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
Esse exemplo gera a saída a seguir:
<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>
Comentários
Você pode usar esse método para avaliar expressões XPath que contêm prefixos de namespace.
Embora a ordenação de coleções retornadas não seja especificada na Recomendação XML XPath Language 1.0, esse método de extensão retorna nós na ordem do documento.
Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo inverso, como preceding-sibling
ou ancestor-or-self
.
Aplica-se a
.NET 9 e outras versões
Produto | Versões |
---|---|
.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 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: