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 to 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 に答える