Sortieren A-Z des Inhaltes einer .xml Datei

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mr-evil1
User
Beiträge: 35
Registriert: Montag 11. März 2019, 10:48

Hallo Gemeinde. Habe eine neue Frage an euch.
Gibt es eine Möglichkeit den Inhalt einer XML Alphabetisch zu sortieren? So dass eine Struktur nicht zerstört wird?

Hier mal eine eine Beispiel Xml

Code: Alles auswählen

<favourites>
    <favourite name="A&amp;E" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=A%26E&quot;)</favourite>
    <favourite name="MY SPORTS 4K" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MY+SPORTS+4K&quot;)</favourite>
    <favourite name="ARD" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ARD&quot;)</favourite>
    <favourite name="CARTOON NETWORK GERMANY" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=CARTOON+NETWORK+GERMANY&quot;)</favourite>
    <favourite name="MDR THÜRINGEN" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MDR+TH%C3%9CRINGEN&quot;)</favourite>
    <favourite name="DISNEY CHANNEL HD GERMANY" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=DISNEY+CHANNEL+HD+GERMANY&quot;)</favourite>
    <favourite name="ELITE CINEMA 3" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ELITE+CINEMA+3&quot;)</favourite>
    <favourite name="KANAL 9" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=KANAL+9&quot;)</favourite>
    <favourite name="MOVIES 12" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MOVIES+12&quot;)</favourite>
    <favourite name="MOVIES 5" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MOVIES+5&quot;)</favourite>
    <favourite name="HEIMATKANAL" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=HEIMATKANAL&quot;)</favourite>
    <favourite name="NAT GEOGRAPHIC" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=NAT+GEOGRAPHIC&quot;)</favourite>
    <favourite name="ACHT" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ACHT&quot;)</favourite>
</favourites>


Hier wäre das Ergäbnis das ich manuell machte.

Code: Alles auswählen

<favourites>
    <favourite name="ACHT" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ACHT&quot;)</favourite>
    <favourite name="A&amp;E" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=A%26E&quot;)</favourite>
    <favourite name="ARD" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ARD&quot;)</favourite>
    <favourite name="CARTOON NETWORK GERMANY" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=CARTOON+NETWORK+GERMANY&quot;)</favourite>
    <favourite name="DISNEY CHANNEL HD GERMANY" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=DISNEY+CHANNEL+HD+GERMANY&quot;)</favourite>
    <favourite name="ELITE CINEMA 3" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=ELITE+CINEMA+3&quot;)</favourite>
    <favourite name="HEIMATKANAL" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=HEIMATKANAL&quot;)</favourite>
    <favourite name="KANAL 9" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=KANAL+9&quot;)</favourite>
    <favourite name="MDR THÜRINGEN" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MDR+TH%C3%9CRINGEN&quot;)</favourite>
    <favourite name="MOVIES 12" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MOVIES+12&quot;)</favourite>
    <favourite name="MOVIES 5" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MOVIES+5&quot;)</favourite>
    <favourite name="MY SPORTS 4K" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=MY+SPORTS+4K&quot;)</favourite>
    <favourite name="NAT GEOGRAPHIC" thumb="https://vjackson.info">PlayMedia(&quot;plugin://plugin.video.vavooto/?action=live&amp;group=Germany&amp;name=NAT+GEOGRAPHIC&quot;)</favourite>
</favourites>

Vielen Dank schon mal für eure Hilfe
Sirius3
User
Beiträge: 18332
Registriert: Sonntag 21. Oktober 2012, 17:20

Oh ja, es gibt viele Möglichkeit. Wo hast Du denn ein konkretes Problem? Hast Du Dich schon in ElementTree eingearbeitet?
Benutzeravatar
__blackjack__
User
Beiträge: 14250
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mr-evil1: So ganz grob könnte man das XML mit `xml.etree.ElementTree` parsen, sich das Wurzelelement geben lassen, und dann die Kindelemente (`Element`-Objekte sind iterierbar) davon durch die entsprechend sortierten Kindelemente (`sorted()`-Funktion) ersetzen lassen (Zuweisung per „slice“-Syntax).
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Benutzeravatar
__blackjack__
User
Beiträge: 14250
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mr-evil1: Wobei ich gerade komisch finde das Du „A&E“ zwischen „ACHT“ und „ARD“ einsortierst‽
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
mr-evil1
User
Beiträge: 35
Registriert: Montag 11. März 2019, 10:48

@__blackjack__ hab ich wohl übersehen.

@all
Zur Verfügung steht mir Python 2.7.
ElementTree ist leider Neuland für mich.
Benutzeravatar
__blackjack__
User
Beiträge: 14250
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das mit 2.7 ist bedauerlich und sollte geändert werden: https://pythonclock.org/

Das Neuland wirst Du dann kennenlernen müssen. Viel Spass beim erkunden. 🙂
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Antworten