2017-02-16 21 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)); 

 Смежные вопросы

  • Нет связанных вопросов^_^