다음을 통해 공유


Extensions.XPathSelectElements 메서드

정의

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

오버로드

XPathSelectElements(XNode, String)

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

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

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

설명

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

노드는 역방향 축(예: 또는 ancestor-or-self)을 사용하는 경우에도 문서 순서로 preceding-sibling 반환됩니다.

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

XPath 식을 평가할 XNode입니다.

expression
String

XPath 식을 포함하는 String입니다.

반환

IEnumerable<XElement>

선택된 요소가 들어 있는 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 권장 사항에 지정되지 않았지만 이 확장 메서드는 문서 순서로 노드를 반환합니다.

노드는 역방향 축(예: 또는 ancestor-or-self)을 사용하는 경우에도 문서 순서로 preceding-sibling 반환됩니다.

적용 대상

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

XPath 식을 평가할 XNode입니다.

expression
String

XPath 식을 포함하는 String입니다.

resolver
IXmlNamespaceResolver

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

반환

IEnumerable<XElement>

선택된 요소가 들어 있는 IEnumerable<T>XElement입니다.

예제

다음은 네임스페이스를 포함하는 XML 트리를 만드는 예제입니다. 여기에서는 XmlReader를 사용하여 XML 문서를 읽습니다. 그런 다음 XmlNameTable에서 XmlReader을 가져오고 XmlNamespaceManager에서 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 권장 사항에 지정되지 않았지만 이 확장 메서드는 문서 순서로 노드를 반환합니다.

노드는 역방향 축(예: 또는 ancestor-or-self)을 사용하는 경우에도 문서 순서로 preceding-sibling 반환됩니다.

적용 대상