Skript zum Ersetzen von bestimmten Zeilen in XML-Datei
Hallo zusammen,
ich habe folgende Frage:
In einer TXT-Datei habe ich eine Liste mit 1.000 UUIDs die wie folgt aussehen: ec9cdfcf7bcc4ad5b973d0001.
Zudem habe ich 1.000 XML-Dateien wo diese UUIDs eingesetzt werden müssen - und das an zwei Stellen.
Einmal hier:
<nachr:ProzessID>4968c13f169f42738a2271be6</nachr:ProzessID>
und einmal hier:
<xf:ID>ec9cdfcf7bcc4ad5b973d0e36</xf:ID>
Ich müsste also ein Skript haben, dass das Verzeichnis mit den XML-Dateien durchläuft und Zeilenweise die UUIDs aus der TXT-Datei holt und an den beiden Stellen ersetzt. Die 1.000 XML-Dateien sind "Klone" - also exakt identisch. Die beiden o.g. IDs sind also immer identisch. Nach dem Vorgang des Ersetzens wären sie es nicht mehr, da dann jede XML an den zwei Stellen eine neue identische ID hat.
Früher hätte ich für so was Mapforce genommen (hab ich aber leider nicht mehr). Ich habe nur Notepad ++ und meine Windows Command Line bzw. Powershell.
Dank euch.
ich habe folgende Frage:
In einer TXT-Datei habe ich eine Liste mit 1.000 UUIDs die wie folgt aussehen: ec9cdfcf7bcc4ad5b973d0001.
Zudem habe ich 1.000 XML-Dateien wo diese UUIDs eingesetzt werden müssen - und das an zwei Stellen.
Einmal hier:
<nachr:ProzessID>4968c13f169f42738a2271be6</nachr:ProzessID>
und einmal hier:
<xf:ID>ec9cdfcf7bcc4ad5b973d0e36</xf:ID>
Ich müsste also ein Skript haben, dass das Verzeichnis mit den XML-Dateien durchläuft und Zeilenweise die UUIDs aus der TXT-Datei holt und an den beiden Stellen ersetzt. Die 1.000 XML-Dateien sind "Klone" - also exakt identisch. Die beiden o.g. IDs sind also immer identisch. Nach dem Vorgang des Ersetzens wären sie es nicht mehr, da dann jede XML an den zwei Stellen eine neue identische ID hat.
Früher hätte ich für so was Mapforce genommen (hab ich aber leider nicht mehr). Ich habe nur Notepad ++ und meine Windows Command Line bzw. Powershell.
Dank euch.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2278872953
Url: https://administrator.de/contentid/2278872953
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
2 Kommentare
Neuester Kommentar
$guids = gc "d:\guids.txt"
$cnt = 0
foreach($file in Get-ChildItem "d:\ordner" -File -Filter *.xml){
[xml}$xml = Get-Content $file.Fullname
$xml.GetElementsByTagName('nachr:ProzessID') | %{$_.InnerText = $guids[$cnt]}
$xml.GetElementsByTagName('xf:ID') | %{$_.InnerText = $guids[$cnt]}
$xml.Save($file.Fullname)
$cnt++
}