查询xml
- XML code
<?xml version="1.0" encoding="utf-8"?><经营管理><日期 date="2012/9/23"> <流动资金>100</流动资金> </日期> <日期 date="2012/9/24"> <流动资金>100</流动资金> <开支> <项目>原材料</项目> <金额>200</金额> <备注></备注> </开支> </日期><日期 date="2012/9/25"> <当天结余>5000</当天结余> <流动资金>100</流动资金><开支> <项目>原材料</项目> <金额>200</金额> <备注></备注> </开支><开支> <项目>原材料</项目> <金额>200</金额> <备注></备注> </开支><开支> <项目>原材料</项目> <金额>200</金额> <备注></备注> </开支> </日期></经营管理>
如上文件
我需要加载“日期”子节点中有“开支”和“当天结余”数据
并且需要把“开支”节点下同一天的“金额”的数据全部加起来
请问大侠们如何解决?
谢了
[解决办法]
这个实例用linq绝对爽。
- C# code
var dataOfDate = xdoc.Descendants("日期").Where(x => x.Element("当天结余") != null && x.Element("开支") != null);foreach (var item in dataOfDate){ Console.WriteLine("当天结余:{0}", item.Element("当天结余").Value); Console.WriteLine("开支:{0}", item.Descendants("开支").Sum(x => Convert.ToDecimal(x.Element("金额").Value)));}
[解决办法]
XmlDocument xm1 = new XmlDocument();//创建XML文件
string path = AppDomain.CurrentDomain.BaseDirectory + "userinfo.xml";
xm1.Load(path);
bool LoginRight = false;
XmlNode xn1 = xm1.SelectSingleNode("userinfo/admin[@text='" + TextBox1.Text + "']");
if (xn1 != null)
{