Extensions.XPathSelectElements 메서드

정의

XPath 식을 사용하여 요소 컬렉션을 선택합니다.

오버로드

Name Description
XPathSelectElements(XNode, String)

XPath 식을 사용하여 요소 컬렉션을 선택합니다.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

XPath 식을 사용하여 요소 컬렉션을 선택하고 지정된 IXmlNamespaceResolver네임스페이스 접두사를 확인합니다.

설명

반환된 컬렉션의 순서는 XML XPath 언어 1.0 권장 사항에 지정되지 않았지만 이 확장 메서드는 문서 순서로 노드를 반환합니다.

노드는 같은 역방향 축 preceding-siblingancestor-or-self을 사용하는 경우에도 문서 순서로 반환됩니다.

XPathSelectElements(XNode, String)

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)

매개 변수

node
XNode

XNode XPath 식을 평가할 위치입니다.

expression
String

XPath 식이 포함된 A String 입니다.

반품

IEnumerable<T> 그 중 XElement 에서 선택한 요소가 포함됩니다.

예제

다음 예제에서는 작은 XML 트리를 만들고 요소 집합을 선택하는 데 사용합니다 XPathSelectElements .

                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

이 예제는 다음과 같은 출력을 생성합니다.

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

설명

반환된 컬렉션의 순서는 XML XPath 언어 1.0 권장 사항에 지정되지 않았지만 이 확장 메서드는 문서 순서로 노드를 반환합니다.

노드는 같은 역방향 축 preceding-siblingancestor-or-self을 사용하는 경우에도 문서 순서로 반환됩니다.

적용 대상

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

XPath 식을 사용하여 요소 컬렉션을 선택하고 지정된 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);
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)

매개 변수

node
XNode

XNode XPath 식을 평가할 위치입니다.

expression
String

XPath 식이 포함된 A String 입니다.

resolver
IXmlNamespaceResolver

XPath 식의 네임스페이스 접두사에 대한 A IXmlNamespaceResolver 입니다.

반품

IEnumerable<T> 그 중 XElement 에서 선택한 요소가 포함됩니다.

예제

다음은 네임스페이스를 포함하는 XML 트리를 만드는 예제입니다. XML 문서를 읽는 데 사용됩니다 XmlReader . 그런 다음 XmlNameTable , XmlNamespaceManager 에서 및 .에서 XmlReader가져옵니다XmlNameTable. 요소 목록을 선택할 때 사용합니다 XmlNamespaceManager .

                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

이 예제는 다음과 같은 출력을 생성합니다.

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

설명

이 메서드를 사용하여 네임스페이스 접두사를 포함하는 XPath 식을 평가할 수 있습니다.

반환된 컬렉션의 순서는 XML XPath 언어 1.0 권장 사항에 지정되지 않았지만 이 확장 메서드는 문서 순서로 노드를 반환합니다.

노드는 같은 역방향 축 preceding-siblingancestor-or-self을 사용하는 경우에도 문서 순서로 반환됩니다.

적용 대상