Ich habe Probleme mit dieser Sortierung und benötige ein wenig Hilfe.Sortierung mit LINQ
Ich werde Kindknoten entlang des Rangs sortieren und speichern. z.B. Um Unterknoten innerhalb des Hauptelements zu bestellen, gebe ich die ID für den spezifischen Abschnitt weiter.
Dieses Beispiel funktioniert nur für die ersten Nachkommen und jetzt steckte ich.
XElement x = XElement.Load(xmlString1);
x.Descendants("opt").First().ReplaceNodes(x.Descendants("opt").First()
.Descendants("sel").OrderBy(o => int.Parse(o.Attribute("rank").Value)));
4x.Save(xmlString2);
Ich brauche das.
x.Descendants("sub").Where(b => b.Attribute("id").Value == "DFG")
.ReplaceNodes(x.Descendants("opt").First()
.Descendants("sel").OrderBy(o => int.Parse(o.Attribute("rank").Value))
Original-
<main id="AFB" rank="1" name="ROOT">
<sub id="DFG" rank="2" name="SUB1">
<att >
<sel id="JIK" rank="4" name="444" />
<sel id="OKI" rank="2" name="222" />
</att>
<opt>
<sel id="JIK" rank="2" name="122" />
<sel id="OKI" rank="1" name="111" />
</opt>
</sub>
<sub id="EGG" rank="1" name="SUB2" >
<opt>
<sel id="DJI" rank="1" name="111" />
<sel id="LOW" rank="3" name="333" />
<sel id="QWE" rank="2" name="222" />
</opt>
</sub>
<main>
Ziel
<main id="AFB" rank="1" name="ROOT">
<sub id="EGG" rank="1" name="SUB2" >
<opt>
<sel id="DJI" rank="1" name="111" />
<sel id="QWE" rank="2" name="222" />
<sel id="LOW" rank="3" name="333" />
</opt>
</sub>
<sub id="DFG" rank="2" name="SUB1">
<att >
<sel id="OKI" rank="2" name="222" />
<sel id="JIK" rank="4" name="444" />
</att>
<opt>
<sel id="OKI" rank="1" name="111" />
<sel id="JIK" rank="2" name="122" />
</opt>
</sub>
<main>
hilft ich Ihren Beitrag bearbeitet den Code korrekt zu formatieren und sie lesbar machen. Aber das '4x.Save (xmlString2);' war vorher da und ich ändere * code * beim Bearbeiten nicht. Ist das ein Tippfehler? –
hast du Rekursion versucht? – slawekwin