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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 2278872953
Url: https://administrator.de/contentid/2278872953
Printed on: April 28, 2024 at 03:04 o'clock
2 Comments
Latest comment
$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++
}