Extensions.XPathSelectElements 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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)
매개 변수
반환
선택된 요소가 들어 있는 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)
매개 변수
- resolver
- IXmlNamespaceResolver
XPath 식의 네임스페이스 접두사에 대한 IXmlNamespaceResolver입니다.
반환
선택된 요소가 들어 있는 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
반환됩니다.