Udostępnij za pośrednictwem


How to: Query LINQ to XML Using XPath

This topic introduces the extension methods that enable you to query an XML tree by using XPath. For detailed information about using these extension methods, see System.Xml.XPath.Extensions.

Unless you have a very specific reason for querying using XPath, such as extensive use of legacy code, using XPath with LINQ to XML is not recommended. XPath queries will not perform as well as LINQ to XML queries.

Example

The following example creates a small XML tree and uses XPathSelectElements to select a set of elements.

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

This example produces the following output:

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

See Also

Concepts

Advanced Query Techniques (LINQ to XML)