2014-02-15 48 views
0

我只是停留在一個問題,當我過我的解析XML像這樣使用的XDocument:XML解析問題WinStoreApp

XDocument xmldoc = XDocument.Load(datafromxml); 

var data = from query in xmldoc.Descendants("Chapter") 

    select new MyEntityclass 
     { 
      Sampledata = (string)query.Element("SubChapter") 

     }; 

我從這次只拿到一個標籤內在價值。即僅來自第一個標籤值。剩餘的被跳過。

我的XML是這樣的:

<Chapter> 
    <SubChapter ChapterID="1"><![CDATA["Some data here 1"]]></SubChapter> 
    <SubChapter ChapterID="2"><![CDATA["Some data here 2"]]></SubChapter> 
    <SubChapter ChapterID="3"><![CDATA["Some data here 3"]]></SubChapter> 

</Chapter> 

當我在調試我剛剛拿到 「:1 chapterid」 的值進行檢查。請幫我解決這個問題。謝謝

+0

'<小節ChapterID = 「1」> ...'如果這是一個錯字,然後解決它。 –

+0

@HenkHolterman對不起,錯誤! – HmXa

回答

1

您的查詢現在只能檢索(迭代)外部節點。

你需要的東西像(未經測試)

var data = from query in xmldoc.Descendants("Chapter") 
      from chapter in query.Elements("SubChapter") // note the 's' 
      select new MyEntityclass 
      { 
      Sampledata = (string)chapter 
      }; 
1
var data = xmlDoc.Root 
       .Elements("SubChapter") 
       .Select(x => new MyEntityclass { Sampledata = (string)x }); 
+1

對,假設「章節」是根。請注意,OP使用Descendants來達到該級別.b此外,您錯過了新的EntityClass –