请查看下面的代码并建议需要做什么才能在输出中获得额外的最后一行,如预期输出中所示
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>