读书人

判断节点加载xml数据,该怎么解决

发布时间: 2012-10-13 11:38:17 作者: rapoo

判断节点,加载xml数据

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); 

读书人网 >C#

热点推荐