2013-02-03 128 views
0

XML數據:從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和需要樣本開始工作! :(

+0

要使用'XmlTextReader'任何理由的參考?你可以將它加載到「XDocument」中嗎?這將是一個更簡單的... –

+0

我是非常新的XML我不知道我怎麼能從'XDocument'使用你能給我這個XML的樣本或東西嗎? –

+0

我打算假設你的意思是在「_」之後有空格。 –

回答

0

您發現父元素和獲得它的文本值。它不會有一個文本值,只有一個孩子。

嘗試,而不是

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

我需要更多的幫助,以獲得所有的價值!你能幫助更多? –

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