判断节点,加载xml数据,该怎么解决
判断节点,加载xml数据
因为有的“日期”下面没有“当天结余”的节点
所以生成错误
请问怎么判断是不是有“当天结余”这个节点
并把有这个节点的数据显示出来呀
叩谢
在线等
------解决方案--------------------
加一个 Where 就搞定了。或者在foreach里判断。
- XML code
<?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# code
var dataOfDate = xdoc.Descendants("日期").Where(x => x.Element("当天结余") != null); foreach (var item in dataOfDate) Console.WriteLine(item.Element("当天结余").Value);