2013-04-29 32 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 

    }; 
相關問題