如何解析这样的XML

yy1987316 2011-01-09 01:50:28

<?xml version="1.0" encoding="UTF-8"?>
<result>
<params>
<name>james bond</name>
<age>35</age>
</params>
<bills num="2">
<billinfo>
<brand>benz</brand>
<num>10</num>
</billinfo>
<billinfo>
<brand>audi</brand>
<num>20</num>
</billinfo>
</bills>
</result>

新手求教:
这样的XML。
是一个接口的返回内容。
当传递不同的参数(也就是params)时,返回这个人的订单数是不确定的,示例为2笔。
请问怎样才能解析这样的xml,将订单信息(billinfo)中的内容放在BillInfo[]里面。

class BillInfo
{
private string brand;

public string Brand
{
get { return brand; }
set { brand= value; }
}

private string num;

public string Num
{
get { return num; }
set { num= value; }
}

}
...全文
150 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-09
  • 打赏
  • 举报
回复
LINQ TO XML 查询
XElement xmlPage = XElement.Parse("");
var query = xmlPage.Elements("bills").Elements("billinfo")
foreach (XElement cp in query )
{}

XmlNodeList userList = xmlDoc.SelectSingleNode("/bills/billinfo").ChildNodes;
foreach (XmlNode ul in userList)
{
XmlElement xe = (XmlElement)ul;
if (xe.GetAttribute("") == "")
{}
}
yy1987316 2011-01-09
  • 打赏
  • 举报
回复
这样的方法可以么?
private static BillInfo[] OpeXml(string xml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNode node = doc.SelectSingleNode("//result//bills");
int i = Convert.ToInt32(node.Attributes["num"].Value);
BillInfo[] billInfo = new BillInfo[i];

//解析billinfo
XmlNodeList root = doc.GetElementsByTagName("billinfo");
for (int n = 0; n < i; n++)
{
XmlNode xn = root[n];
Console.WriteLine(xn.InnerText);
bill_Info[n] = new Bill_Info();
bill_Info[n].brand= xn.SelectSingleNode("brand").InnerText;
bill_Info[n].num= xn.SelectSingleNode("num").InnerText;
}
return bill_Info;
}
yy1987316 2011-01-09
  • 打赏
  • 举报
回复
求高手指点啊
yy1987316 2011-01-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 netharry 的回复:]
List<BillInfo> billInfos=...
[/Quote]
求解析XML部分
netharry 2011-01-09
  • 打赏
  • 举报
回复
List<BillInfo> billInfos=...
yy1987316 2011-01-09
  • 打赏
  • 举报
回复

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<result>
<params>
<name>james bond</name>
<age>35</age>
</params>
<bills num=\"2\">
<billinfo>
<brand>benz</brand>
<num>10</num>
</billinfo>
<billinfo>
<brand>audi</brand>
<num>20</num>
</billinfo>
</bills>
</result>

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧