Answers:
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
。