2017-02-16 91 views
0

我遇到了必須按節點名稱對XDocument進行排序的問題。例如如何按名稱對xDocument節點進行排序

<contact> 
    <email></email> 
    <address></address> 
    <name></name> 
</contact> 

我想

<contact> 
    <address></address> 
    <email></email> 
    <name></name> 
</contact> 

謝謝您的幫助。

我試着使用

var ab = xdoc.Descendants("contact"); 
      var s = from abs in ab 
        orderby abs.Name.ToString() descending 
        select abs; 

但結果保持相同

+2

什麼阻止你在解決這個任務的中間?見[如何問](http://stackoverflow.com/help/how-to-ask) –

+0

我看了很多的stackoverflow頁面,但沒有找到正確的答案 – sirishotka

+0

有多個聯繫人? – octavioccl

回答

1

你需要有序的節點替換子節點:

  XDocument doc = XDocument.Parse(@"<contact> 
    <email></email> 
    <address></address> 
    <name></name> 
</contact>"); 
      doc.Root.ReplaceNodes(doc.Root.Elements().OrderBy(el => el.Name.LocalName)); 
相關問題