2011-11-17 98 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");