读书人

查询xml解决方法

发布时间: 2012-10-27 10:42:26 作者: rapoo

查询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)
{

读书人网 >C#

热点推荐