我刚开始使用LINQ虽然我有一些使用C#的经验。目前正在使用LINQPad 4。
我正在尝试计算XML文档中每个元素的属性数。
这就是我已经拥有的,它是LINQPad中的样本混合和已经完成的关于该主题的研究。我正在寻找的是要么做到这一点的方法,要么是更好的方法。
XElement config = XElement.Parse (
@"<configuration>
<client enabled='1' enabled2='0' enabled3='1'>
<timeout>30</timeout>
</client>
<client enabled='true'>
<timeout>30</timeout>
<timeout>30</timeout>
</client>
</configuration>");
foreach (XElement child in config.Elements()){
Console.WriteLine("Start");
int attNumbers = config.Descendants().Attributes().Select(att => att.Name).Distinct(). Count();
Console.WriteLine(attNumbers);}
此解决方案似乎只计算最大属性数量。
非常感谢任何帮助。
答案 0 :(得分:4)
我会对文档中的所有元素进行循环,然后计算每个元素的属性:
foreach (var element in config.DescendantsAndSelf())
{
Console.WriteLine("{0}: {1} attributes",
element.Name,
element.Attributes().Count()
);
}