使用LINQ to XML获取后代

时间:2014-07-23 16:39:14

标签: linq-to-xml

我想使用LINQ to XML查询看起来像这样的XML文档

<root>
     <data>
        <_0>
            <id>123</id>
            <status>complete</status>
            <datesubmitted>2014-07-07 10:35:45</datesubmitted>
            <question1>10</question1>
            <question2>Yes</question2>
            <question3></question3>
        </_0>
        <_1>
            <id>456</id>
            <status>complete</status>
            <datesubmitted>2014-07-07 11:05:45</datesubmitted>
            <question1>10</question1>
            <question2>Yes</question2>
            <question3></question3>
        </_1>
        <_2>
            <id>789</id>
            <status>complete</status>
            <datesubmitted>2014-07-07 12:15:45</datesubmitted>
            <question1>10</question1>
            <question2>Yes</question2>
            <question3></question3>
        </_2>
    </data>
    </root>

我能够获得元素&#34;数据&#34;使用

               IEnumerable<XElement> ldata =
                    from el in root.Elements("data")
                    select el;

但是我无法想出下一个查询来获取后代,以便稍后循环来填充我的对象。谢谢

1 个答案:

答案 0 :(得分:0)

使用Elements()

var data = from child in root.Elements("data").Elements() select new {
  id = (int)child.Element("id"),
  status = (string)child.Element("status"),
  date = (string)child.Element("datesubmitted")
};