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
Please also mark the comments that contributed to the solution of the article
Content-Key: 346549
Url: https://administrator.de/contentid/346549
Printed on: April 19, 2024 at 09:04 o'clock
7 Comments
Latest comment
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ß