以下のコードを確認し、期待される出力に示されているように出力の最後の行を追加するために何をする必要があるかをアドバイスしてください
class test {
static void Main(string[] args)
{
XDocument doc = XDocument.Load("E:\\BI_analytics\\Data\\so.xml");
var query = from test in doc.Descendants("tester")
from testreq in test.Descendants("testRequest")
from testresp in test.Descendants("testResponse")
let id = testreq.Element("id") == null ? string.Empty : testreq.Element("id").Value
// select id;
from itm in testresp.Descendants("item")
select new
{
ID = (string)id,
Name = (string)itm.Attribute("itemname"),
Code = (string)itm.Attribute("itemocde"),
};
foreach (var result in query)
{
Console.WriteLine(result);
}
}
}
現在の出力
{ID = 2、名前=テスト項目1、コード= 111} {ID = 2、名前=テスト項目2、コード= 222} {ID = 3、名前=テスト項目3、コード= 333} {ID = 3、名前=テスト項目4、コード= 444}
期待される出力
{ID = 2、名前=テスト項目1、コード= 111} {ID = 2、名前=テスト項目2、コード= 222} {ID = 3、名前=テスト項目3、コード= 333} {ID = 3、名前=テスト項目4、コード= 444} {ID = 4、名前=、コード=}
<?xml version="1.0" encoding="utf-8"?>
<root>
<tester>
<testRequest>
<id>2</id>
</testRequest>
<testResponse>
<items>
<item itemname="test item1" itemocde="111"/>
<item itemname="test item2" itemocde="222"/>
</items>
</testResponse>
</tester>
<tester>
<testRequest>
<id>3</id>
</testRequest>
<testResponse>
<items>
<item itemname="test item3" itemocde="333"/>
<item itemname="test item4" itemocde="444"/>
</items>
</testResponse>
</tester>
<tester>
<testRequest>
<id>4</id>
</testRequest>
<testResponse>
<items />
</testResponse>
</tester>
</root>