Luk*_*101 174 .net c# xml linq-to-xml
我在VS IntelliSense中遇到过这两个关键字.我试图谷歌搜索他们之间的差异,并没有得到一个明确的答案.其中哪一个具有中小型XML文件的最佳性能.谢谢
Mar*_*ers 282
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>
Run Code Online (Sandbox Code Playgroud)
码:
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);
}
Run Code Online (Sandbox Code Playgroud)
结果:
Elements : Test 1 Elements : Test 3 Descendants : Test 1 Descendants : Test 2 Descendants : Test 3
如果您知道您想要的元素是直接孩子,那么如果您使用Elements而不是,您将获得更好的表现Descendants.