source

Link-XML 하위 요소와 요소의 차이점

nicesource 2023. 10. 11. 20:48
반응형

Link-XML 하위 요소와 요소의 차이점

저는 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에서는 현재 요소의 직계 자식만 검색합니다.

언급URL : https://stackoverflow.com/questions/3705020/what-is-the-difference-between-linq-to-xml-descendants-and-elements

반응형