VS IntelliSense 에서이 키워드를 모두 보았습니다. 나는 그들 사이의 차이점을 찾으려고 노력했지만 명확한 대답을 얻지 못했습니다. 중소 규모 XML 파일에서 가장 우수한 성능을 발휘하는 것은 무엇입니까? 감사
답변
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
.
답변
Descendants
지정된 이름에 대해 현재 요소의 전체 하위 트리를 검색하거나 이름이 제공되지 않으면 평평한 트리 버전을 반환하지만 Elements
현재 요소의 직계 자식 만 검색합니다.