Condividi tramite


Procedura: Eseguire query su LINQ to XML con XPath

In questo argomento vengono presentati i metodi di estensione che consentono di eseguire una query su una struttura ad albero XML utilizzando XPath. Per informazioni dettagliate sull'utilizzo di questi metodi di estensione, vedere System.Xml.XPath.Extensions.

A meno che non esista un motivo molto specifico per eseguire query tramite XPATH, ad esempio l'utilizzo esteso di codice legacy, è preferibile non utilizzare XPATH con LINQ to XML. Le query XPath non vengono eseguite con le stesse prestazioni delle query LINQ to XML.

Esempio

Nell'esempio seguente viene creata una piccola struttura ad albero XML e viene utilizzato 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);
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

L'output ottenuto eseguendo l'esempio è il seguente:

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

Vedere anche

Concetti

Tecniche di query avanzate (LINQ to XML)