xml ドキュメントをクエリして、特定の要素のサブ要素/属性のリストを返すにはどうすればよいですか。
var entry = from item in doc.Descendants("GROUP")
where (string)item.Attribute("meetsMark") == "1"
select new
{
code = (string)item.Attribute("code"),
};
上記は、meetsMark 属性が「1」である要素 GROUP に属するエントリのみを返します。コードを返す要素ごとに、含まれるすべての SUMMARY 属性の「合計」と「数値」のリストも取得する必要があります。例: クエリを返す必要があります。
コード = セカンダリ
合計 = SUM1
数 = 1
合計 = SUM3
数 = 3
合計 = SUM4
数 = 4
コード=THIRD
合計 = SUM10
数 = 1
合計 = SUM30
数 = 3
合計 = SUM40
数 = 4
以下はxml構造です。
<GROUP id="GRP2" code="MAIN" meetsMark="0" <GROUP id="GRP3" code="SECONDARY" meetsMark="1" <ITEMS> <ITEM id="ITM6" <SUMMARY sum="SUM1" number="1" </SUMMARY> </ITEM> <ITEM id="ITM14" <SUMMARY sum="SUM3" number="3" </SUMMARY> </ITEM> <ITEM id="ITM15" <SUMMARY sum="SUM4" number="4" </SUMMARY> </ITEM> </ITEMS> </GROUP> <GROUP id="GRP4" code="THIRD" meetsMark="1" <ITEMS> <ITEM id="ITM95" <SUMMARY sum="SUM10" number="1" </SUMMARY> </ITEM> <ITEM id="ITM96" <SUMMARY sum="SUM30" number="3" </SUMMARY> </ITEM> <ITEM id="ITM97" <SUMMARY sum="SUM40" number="4" </SUMMARY> </ITEM> </ITEMS> </GROUP> </GROUP>