按顺序获取xml节点

时间:2011-02-09 05:19:45

标签: c# xml linq-to-xml

我有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到E”然后“A到C”

任何人都可以帮我怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用LINQ to XML执行此操作:

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

这将选择按Order属性的值排序的标签元素列表。