1

C# の使用経験はありますが、LINQ を使い始めたばかりです。現在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);}

このソリューションは、最大量の属性のみをカウントするようです。

どんな助けでも大歓迎です。

調査: http://social.msdn.microsoft.com/Forums/en-US/8379f0d4-a4f1-41ec-9f45-4573dba81efe/count-number-of-elements-and-attributes-using-linq

4

1 に答える 1

5

ドキュメント内のすべての要素をループしてから、それぞれの属性を数えます。

foreach (var element in config.DescendantsAndSelf())
{
    Console.WriteLine("{0}: {1} attributes", 
        element.Name, 
        element.Attributes().Count()
    );
}
于 2013-07-16T13:59:22.730 に答える