<?xml version="1.0" encoding="utf-8"?>
<经营管理>
<日期 date="2012/9/24">
<流动资金>100</流动资金>
<开支>
<项目>原材料</项目>
<金额>200</金额>
<备注></备注>
</开支>
</日期>
<日期 date="2012/9/25">
<当天结余>5000</当天结余>
<流动资金>100</流动资金>
<开支>
<项目>原材料</项目>
<金额>200</金额>
<备注></备注>
</开支>
<开支>
<项目>原材料</项目>
<金额>200</金额>
<备注></备注>
</开支>
<开支>
<项目>原材料</项目>
<金额>200</金额>
<备注></备注>
</开支>
</日期>
</经营管理>
C# code
var que = from c in xdoc.Descendants("经营管理").Elements("日期")
select c;
foreach (var item in que)
{
listItem = new ListViewItem();
listItem.Text = item.cc.Attribute("date").Value;
listItem.SubItems.Add((Convert.ToInt32(item.cc.Element("当天结余").Value) - Convert.ToInt32(item.cc.Element("流动资金").Value)).ToString());
listView1.Items.Add(listItem);
}
}
因为有的“日期”下面没有“当天结余”的节点
所以生成错误
请问怎么判断是不是有“当天结余”这个节点
并把有这个节点的数据显示出来呀
加一个 Where 就搞定了。或者在foreach里判断。
C# codevar dataOfDate = xdoc.Descendants("日期").Where(x => x.Element("当天结余") != null);
foreach (var item in dataOfDate)
Console.WriteLine(item.Element("当天结余").Value);