如何从XNode读取数据

时间:2011-11-17 04:14:09

标签: c# xml linq

如何从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>

我想获得国家/地区和日期值。

任何帮助都会非常感激。 感谢。

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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");