получить узел XML по заказу - PullRequest
0 голосов
/ 09 февраля 2011

у меня есть xml-файл вроде:

<?xml version="1.0" encoding="utf-8" ?>
<Config>
  <MetadataFormConfig FieldInternalName="Test">
         <Tabs>
             <Tab Title="A to C" Order="1">
                 <ShowParentTerm>A</ShowParentTerm>
                 <ShowParentTerm>B</ShowParentTerm>
                 <ShowParentTerm>C1</ShowParentTerm>

             </Tab>
             <Tab Title="D to E" Order="2">
                 <ShowParentTerm>D</ShowParentTerm>
                 <ShowParentTerm>E</ShowParentTerm>
      </Tab>

    </Tabs>
  </MetadataFormConfig>
</Config>

Я хочу получить вкладку по порядку. если я изменил табуляцию Title = "A to c" на 2, то сначала я хочу получить узел "D to E", затем "A to C"

Может ли кто-нибудь помочь мне, как это сделать?

1 Ответ

4 голосов
/ 09 февраля 2011

Вы можете сделать это с LINQ to XML:

XDocument doc = XDocument.Load(@"test.xml");
var tabs = doc.Descendants("Tab")
              .OrderBy(t => Convert.ToInt32(t.Attribute("Order").Value))
              .ToList();

Это выберет список элементов табуляции, упорядоченных по значению атрибута Order.

...