ご挨拶!
私はLINQに頭を悩ませようとしています。このような XML を XDocument オブジェクトにロードした場合:
<Root>
<GroupA>
<Item attrib1="aaa" attrib2="000" attrib3="true" />
</GroupA>
<GroupB>
<Item attrib1="bbb" attrib2="111" attrib3="true" />
<Item attrib1="ccc" attrib2="222" attrib3="false" />
<Item attrib1="ddd" attrib2="333" attrib3="true" />
</GroupB>
<GroupC>
<Item attrib1="eee" attrib2="444" attrib3="true" />
<Item attrib1="fff" attrib2="555" attrib3="true" />
</GroupC>
</Root>
Group 要素のすべての Item 子要素の属性値を取得したいと考えています。私のクエリは次のようになります。
var results = from thegroup in l_theDoc.Elements("Root").Elements(groupName)
select new
{
attrib1_val = thegroup.Element("Item").Attribute("attrib1").Value,
attrib2_val = thegroup.Element("Item").Attribute("attrib2").Value,
};
クエリは機能しますが、たとえば groupName 変数に "GroupB" が含まれている場合、3 つではなく 1 つの結果 (最初の Item 要素) のみが返されます。何か不足していますか?