0

XML 数据:

<LIST>
  <TITLE>Item</TITLE>
  <YEAR>2013</YEAR>
  <NAME>
    <NAME_ n="1">AB</NAME_>
    <NAME_ n="2">CD</NAME_>
    <NAME_ n="3">EF</NAME_>
    <NAME_ n="4">GH</NAME_>
    <NAME_ n="5">IJ</NAME_>
  </NAME>
  <PRICE>
    <PRICE_ n="1">100</PRICE_>
    <PRICE_ n="2">103</PRICE_>
  </PRICE>
  <AV>
    <AV_ n="0">128,457</AV_>
    <AV_ n="1">1,746,301</AV_>
    <AV_ n="2">173,247</AV_>
    <AV_ n="3">246,102</AV_>
  </AV>
  <PIC>
    www.example.com/pictest.jpg
  </PIC>
  <URL>www.test.com/itemtest</URL>
</LIST>

我试过这段代码:

XmlTextReader reader = new XmlTextReader(a);
while (reader.Read())
{
    if (reader.Name == "AV")
    {
        label1.Text += reader.Value;
    }

现在,我知道我的代码需要更多帮助,因为我无法获得任何输出!
如何从此 XML 中读取值?

任何人都可以帮助我从这个 XML中获得所有价值吗?bcs 我对 xml 非常陌生,需要样本才能开始工作!:(

4

2 回答 2

1

要从节点的内容中获取所有数值和属性编号AV_,请使用下一个脚本:

string str = "..."; //xml contents go here

var xml = XDocument.Parse(str);

var values = xml.Descendants("AV_")
                .Select(n => n.Attribute("n").Value + " : " + n.Value);


values.ToList()
      .ForEach(Console.WriteLine);

印刷:

0 : 128,457
1 : 1,746,301
2 : 173,247
3 : 246,102

不要忘记添加对 Linq 到 XML 命名空间的引用using System.Xml.Linq

于 2013-02-04T00:12:06.823 回答
0

您正在查找父元素并获取它的文本值。它没有文本值,只有另一个孩子。

试试吧

        XmlTextReader reader = new XmlTextReader(a);
        while (reader.Read())
        {
            if (reader.Name == "AV_")
            {
                label1.Text += reader.Value;
            }
于 2013-02-03T23:34:42.043 回答