我有一個XDocument,我想按字母順序排列所有元素。下面是結構的簡化版本:排序XDocument中的所有元素
<Config>
<Server>
<Id>svr1</Id>
<Routing>
<RoutingNodeName>route1</RoutingNodeName>
<Subscription>
<Id>1</Id>
</Subscription>
<RoutingParameters id="Routing1">
<Timeout>7200</Timeout>
</RoutingParameters>
</Routing>
<Storage>
<Physical>HD1</Physical>
</Storage>
</Server>
<Applications>
<Services>
<Local></Local>
</Services>
</Applications>
</Config>
我想各級該文件中的元素進行排序,到目前爲止,我能夠像這樣排序的:
private static XDocument Sort(XDocument file)
{
return new XDocument(
new XElement(file.Root.Name,
from el in file.Root.Elements()
orderby el.Name.ToString()
select el));
}
哪生產:
<Config>
<Applications>
<Services>
<Local></Local>
</Services>
</Applications>
<Server>
<Id>svr1</Id>
<Routing>
<RoutingNodeName>route1</RoutingNodeName>
<Subscription>
<Id>1</Id>
</Subscription>
<RoutingParameters id="Routing1">
<Timeout>7200</Timeout>
</RoutingParameters>
</Routing>
<Storage>
<Physical>HD1</Physical>
</Storage>
</Server>
</Config>
我想能夠排序都在以同樣的方式的子元素(通過遞歸函數理想情況下)。任何想法,我怎麼能得到這與LINQ?
感謝您的任何想法。
謝謝,我能夠使用它來獲得我的預期結果與屬性和文本。乾杯。 – 2010-08-12 19:50:46
這是展示如何對節點進行排序的好方法,但是擺脫所有值和屬性並不是解決OP問題的答案。@ZeroCool如果你已經編輯了這個答案,向其他人展示你是如何得到你正在尋找的正確答案的話,那就太棒了。 – 2013-10-11 18:04:16
@ArvoBowen:我已經更新了我的答案。 – dtb 2013-10-11 18:24:13