2013-04-29 85 views
0

我在下面的格式有XML:读取XML具有相同的元素命名

<?xml version="1.0" encoding="UTF-8" standalone="true"?> 
-<draw><drawNo>381555</drawNo> 
    <drawTime>2013-04-29T19:55:00+03:00</drawTime> 
    <result>8</result> 
    <result>10</result> 
    <result>13</result> 
    <result>15</result> 
    <result>20</result> 
    <result>21</result> 
    <result>22</result> 
    <result>25</result> 
    <result>28</result> 
    <result>29</result> 
    <result>34</result> 
    <result>36</result> 
    <result>44</result> 
    <result>46</result> 
    <result>52</result> 
    <result>62</result> 
    <result>63</result> 
    <result>72</result> 
    <result>73</result> 
    <result>75</result> 
</draw> 

我需要拆分数据... 我尝试下面的代码:

XDocument loadeddata = XDocument.Parse(e.Result); 
       var data = from query in loadeddata.Descendants("draw") 
          select new KinnoResults() 
             { 
              DrawNo = (String) query.Element("drawNo").Value, 
              DrawTime = (String) query.Element("drawTime").Value, 
              result1 = (String)query.Element("result").Value, 
              result2 = (String)query.Element("result").Value 

             }; 
       List<KinnoResults> list = data.ToList(); 

但RESULT1和结果2 hava相同的值8. 有什么想法吗?

+0

尝试的getElementsByTagName。它会给你结果元素列表。 – Yahya 2013-04-29 17:13:14

回答

1
var drawNo = loadeddata.Root.Element("drawNo").Value; 
var drawTime = loadeddata.Root.Element("drawTime").Value; 
var results = loadeddata.Descendants("result").Select(d => d.Value).ToList(); 
1

使用Elements,它可以让你收集

select new KinnoResults() 
    { 
     DrawNo = (String)query.Elements("drawNo").Value, 
     DrawTime = (String)query.Element("drawTime").Value, 
     result1 = (String)query.Elements("result").ToList()[0].Value, 
     result2 = (String)query.Elements("result").ToList()[1].Value 

    }; 
相关问题