답변:
Elements
직계 자손 즉 직계 자녀 인 요소 만 찾습니다 .
Descendants
어린이, 손자 등 모든 수준의 어린이를 찾습니다.
차이점을 보여주는 예는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
암호:
XDocument doc = XDocument.Load("input.xml");
XElement root = doc.Root;
foreach (XElement e in root.Elements("bar"))
{
Console.WriteLine("Elements : " + e.Value);
}
foreach (XElement e in root.Descendants("bar"))
{
Console.WriteLine("Descendants : " + e.Value);
}
결과:
구성 요소 : 시험 1 요소 : 시험 3 후손 : 시험 1 후손 : 시험 2 후손 : 시험 3
원하는 요소가 직계 자식임을 알고 있다면 Elements
대신 대신 사용하면 성능이 향상됩니다 Descendants
.