Elements() 获得当前节点的子节点,
Descendants() 获取当前节点的子代节点,子节点、子节点的子节点、子节点的子节点的子节点、。。。。。由于Descendants() 获取当前节点的子代节点,数据量会很大,因此Descendants()方法延迟执行。
举例来说:对于Xml文件,
<?xml version="1.0" encoding="gb2312"?>
<Persons>
<Person>
<Name>小李</Name>
</Person>
<Person>
<Name>小牛</Name>
</Person>
</Persons>
XElement root = XElement.Load("Text.txt");
List<XElement> ele = root.Elements().ToList();
List<XElement> des = root.Descendants().ToList();
其中,ele 的个数为2 ,分别为
<Person><Name>小李</Name></Person>、
<Person><Name>小牛</Name></Person>
des 的个数为4 ,分别为
<Person><Name>小李</Name></Person>、
<Name>小李</Name>、
<Person><Name>小牛</Name></Person>、
<Name>小牛</Name>