2011-11-17 100 views
3

如何從XNode讀取數據。如何從XNode中讀取數據

這是我從另一個查詢中得到的XNode。

<claim kind="national" sequence="1"> 
    <country>UK</country> 
    <number>66</number> 
    <date>20080602</date> 
</claim> 
<claim kind="national" sequence="3"> 
    <country>TH</country> 
    <number>61</number> 
    <date>20090316</date> 
</claim> 

我想獲取國家和日期值。

任何幫助將非常感激。 謝謝。

回答

6

嘗試,

var list = from ele in XDocument.Load(@"c:\file.xml").Descendants("claim") 
      select new 
      { 
       Country=(string)ele.Element("country"), 
       Date=(string)ele.Element("date") 
      }; 
foreach (var t in list) 
{ 
    Console.WriteLine(t.Country + " "+ t.Date); 
} 

編輯:

string country=(string)((XElement)xNodeObj).Element("country"); 
+0

THX您的回覆。我應該如何嘗試,因爲這個xml已經在XNode中(不是來自文件)。 – kevin

+2

@kevin - 我編輯了我的帖子。 – adatapost

+0

Thx很多! :D – kevin

1

這是一種使用XPath做到這一點:

string xml = "<main><claim kind=\"national\" sequence=\"1\"> <country>UK</country> <number>66</number> <date>20080602</date></claim><claim kind=\"national\" sequence=\"3\"> <country>TH</country> <number>61</number> <date>20090316</date></claim></main>"; 
XDocument doc = XDocument.Parse(xml); 
doc.XPathSelectElement("//claim[country = 'TH']/number").Value.Dump("xpath stuff");