2012-05-07 30 views
0

我想閱讀下面的XML並按以下順序打印輸出。你可以幫助查詢?使用嵌套循環的Linq XML查詢

enter image description here

10 Subject1 A1 10 Subject2 B1 10 Subject3 C1 20 Subject1 B2 20 Subject2 A1 20 Subject3 C2

預先感謝

+0

我不明白你怎麼指望'Subject1 C1'出來的是XML的? –

+0

對不起,主題3有拼寫錯誤。我已經能夠加載Xdocument並用XElement ID聲明var,但從未使用過Linq。我可以在SQL服務器上做到這一點,但問題是我失去了很多的格式,因此試圖使用C# – user219628

回答

0

這裏的示例如何可以查詢以你想要的形式:

XDocument doc = XDocument.Load("test.xml"); 
var query = from l in doc.Descendants("L1") 
      let id = l.Attribute("id").Value 
      from subject in l.Descendants("Subject") 
      select new 
      { 
       Id = id, 
       SubjectName = (string)subject.Attribute("SubjectName"), 
       Score = (string)subject.Attribute("Score") 
      }; 

foreach (var result in query) 
{ 
    Console.WriteLine(result); 
} 

輸出:

{ Id = 10, SubjectName = Subject1, Score = A1 } 
{ Id = 10, SubjectName = Subject2, Score = B1 } 
{ Id = 10, SubjectName = Subject3, Score = C1 } 
{ Id = 20, SubjectName = Subject1, Score = B2 } 
{ Id = 20, SubjectName = Subject2, Score = A1 } 
{ Id = 20, SubjectName = Subject3, Score = C2 } 
+0

對於更多_inline madness_可以使用'(query).ToList()。ForEach(item => Console.WriteLine item))',用你建議的linq查詢替換'query'。 ;) –

+0

謝謝先生!非常感謝 – user219628

+0

你好,請建議應該做些什麼改變才能在輸出中顯示日期。謝謝 – user219628