Ich habe ein XDocument, in dem ich alle Elemente alphabetisch sortieren möchte. Hier ist eine vereinfachte Version der Struktur:Sortieren aller Elemente in einem 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>
ich will, um die Elemente in diesen Dokumenten auf allen Ebene sortieren, so weit ich in der Lage bin, es zu sortieren, wie so:
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));
}
Welche produziert:
<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>
ich alle Kinder Elemente in der gleichen Art und Weise in der Lage sein möchten, sortieren (durch eine rekursive Funktion im Idealfall). Irgendwelche Ideen, wie ich das mit LINQ umsetzen kann?
Danke für irgendwelche Ideen.
Dank Ich konnte das verwenden, um mein beabsichtigtes Ergebnis mit den Attributen und dem Text zu erhalten. Prost. –
Dies ist eine großartige Möglichkeit zu zeigen, wie die Knoten zu sortieren, aber loszuwerden alle Werte und Attribute ist keine Antwort, die die OPs Frage [email protected] es wäre toll gewesen, wenn du diese Antwort editiert hättest, um allen anderen zu zeigen, wie du die richtige Antwort gefunden hast, die du suchst. –
@ArvoBowen: Ich habe meine Antwort aktualisiert. – dtb