关于XML提取。。。

ffhelly 2009-05-17 08:52:18
<商品信息>
<饮料 Type="Base">
<名称>一统绿茶</名称>
<类型>低糖</类型>
<单价>3.5</单价>
<产地>一统公司</产地>
<容量>1.25</容量>
<库存>5</库存>
</饮料>
<饮料 Type="Base">
<名称>乐乐可乐</名称>
<类型>碳酸</类型>
<单价>3</单价>
<产地>笑笑公司</产地>
<容量>2</容量>
<库存>3</库存>
</饮料>
<饮料 Type="Functional">
<名称>一统牛饮</名称>
<类型>功能</类型>
<单价>6</单价>
<产地>一统公司</产地>
<容量>0.35</容量>
<库存>10</库存>
<营养说明>富含多种维生素</营养说明>
</饮料>

如何来保存这些对象?
如何来区别两个BASE 来实例化对应的对象来保存??
那个Type如何来分别?
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperTyro 2009-05-17
  • 打赏
  • 举报
回复
XmlDocument xdoc = new XmlDocument();
xdoc.Load("info.xml");

XmlNodeList lst = xdoc.DocumentElement.SelectNodes("/商品信息/饮料");

foreach (XmlNode xn in lst)
{
string str=xn.Attributes["Type"].Value;
if (str == "Base")
{
Console.WriteLine("Base : " + xn.ChildNodes[0].InnerText);
}
else if (str == "Functional")
{
Console.WriteLine("Functional : " + xn.ChildNodes[0].InnerText);
}


}
ffhelly 2009-05-17
  • 打赏
  • 举报
回复
楼上的达达说的还是不是很明白。。。

可能我说的有点问题吧。。

如果说饮料都是一种的话 那个我自己能解决。。。

但是这个确实在 子节点的后面加一个叫type=""的东西 这个我第一次遇到

实在不知道怎么来判断这2个类型 毕竟保存的是3个对象 两种类型。。。

不知道这个type="" 到底怎么来作为判断来处理我要保存哪一个对象。、
<饮料 Type="Base">
<饮料 Type="Functional">
ProjectDD 2009-05-17
  • 打赏
  • 举报
回复
XmlReader xr = XmlReader.Create();

while(xr.Read())
{
if(xr.NodeType==XmlNodeType.Element&& xr.InnerText=="名称"){
var v=xr.ReadContentToString();
//....
}
}
//
方法有很多,可以使用 XmlDocument 或现在较新的 linq to xml 等
若使用XmlDocument可以结合 XPath查询语句 对XML文档进行XQuery查询
ffhelly 2009-05-17
  • 打赏
  • 举报
回复
这个是我要解析的XML。。
我现在对应饮料有2个类。。 牛奶继承了前面的茶和可乐。。
如何来判断是牛奶还是茶或可乐?
还有那个Type怎么来运用。。。
不知道怎么解析了 - -

问题是这个。。
ffhelly 2009-05-17
  • 打赏
  • 举报
回复
顶一下。。。

111,118

社区成员

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

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

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