我在VS IntelliSense中遇到了这两个关键词。我尝试使用谷歌搜索它们之间的区别,但没有得到清晰的答案。对于小到中等大小的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
仅搜索当前元素的直接子元素。