Per Batch Textstellen vertauschen
Hallo,
es geht um folgenden Dateiausschnitt aus einer Test.xml:
Leider hat der Server, auf den ich keinen Zugriff habe, die Daten bei age-from und age-to vertauscht. Wie kann ich nun in der gesamten Datei diese Textstellen suchen und die entsprechenden Jahreszeilen vertauschen lassen?
Gruß
Tefracky
es geht um folgenden Dateiausschnitt aus einer Test.xml:
<competition start-date="2017-09-02 10:00" ttr-from="0" ttr-to="2000" age-group="Herren" final-round-playmode="Einfaches K.-o.-System" age-from="2017" max-persons="999" sex="gemischt" ttr-remarks="A " age-to="1897" type="Doppel" entry-fee="0.0">
<players>
</players>
</competition>
<competition start-date="2017-09-03 10:00" ttr-from="0" ttr-to="1800" age-group="Herren" final-round-playmode="Einfaches K.-o.-System" age-from="2017" max-persons="999" sex="gemischt" ttr-remarks="B" age-to="1897" type="Einzel" entry-fee="0.0" preliminary-round-playmode="Gruppen Jeder gegen jeden">
<players>
Leider hat der Server, auf den ich keinen Zugriff habe, die Daten bei age-from und age-to vertauscht. Wie kann ich nun in der gesamten Datei diese Textstellen suchen und die entsprechenden Jahreszeilen vertauschen lassen?
Gruß
Tefracky
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 346549
Url: https://administrator.de/contentid/346549
Ausgedruckt am: 05.12.2024 um 02:12 Uhr
7 Kommentare
Neuester Kommentar
Batch ist für die Bearbeitung von XML-Dateien ungeeignet und das schlechteste Mittel der Wahl. Hier arbeitet man immer mit einem XML-Parser oder gleich mit XSLT!!
Also nimm bswp. Powershell für die Spielerei.
Leider postest du nur einen Ausschnitt aus der XML so dass mann nur vermuten kann ob das XML File Namespaces verwendet, was für das posten von passendem Code eigentlich notwendig wäre.
Bei Verwendung von Namespaces die wir hier nicht sehen können sind Anpassungen nötig!
Gruß
Also nimm bswp. Powershell für die Spielerei.
Leider postest du nur einen Ausschnitt aus der XML so dass mann nur vermuten kann ob das XML File Namespaces verwendet, was für das posten von passendem Code eigentlich notwendig wäre.
$file = 'C:\test.xml'
$xml = new-object XML
$xml.Load($file)
$xml.SelectNodes('//competition') | %{
$from = $_.'age-from'
$to = $_.'age-to'
$_.'age-from' = $to
$_.'age-to' = $from
}
$xml.Save($file)
Gruß
Power Shell würde natürlich auch gehen, aber kann man das Skript dann auch genauso bequem ausführen wie eine Bat-Datei?
Ja, kann man auch eine EXE von machen.
Freut mich zu hören.
Das Gleichheitszeichen ist kein Vergleichsoperator!!
Hier benutzt du -eq.
https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-g ...
Gruß
Hier benutzt du -eq.
https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-g ...
Gruß