XML-Tags bearbeiten bzw. nummerieren
Hallo,
ich habe leider gar keine Ahnung von Powershell, nutze aber folgenden Code, den mir schon mal jemand im Forum geschrieben hatte und der super funktioniert:
gci 'C:\Users\Desktop\Export' -File -Filter *.xml | %{
$xml = New-Object XML
$xml.Load($_.Fullname)
$node = $xml.SelectSingleNode("/DUM/*[1]")
$xml.RemoveChild($xml.DocumentElement) | out-null
$xml.AppendChild($node) | out-null
$xml.Save($_.Fullname)
}
Wenn es irgendwie geht, würde ich Powershell jetzt gerne Folgendes zusätzlich sagen: suche nach dem mehrfach vorkommenden Knoten/Attribut (?) "<tag>"; benenne den ersten um in "<tag1>", den zweiten in "<tag2>" usw.
Hier noch ein Ausschnitt aus der XML-Datei (vor der Anwendung oben):
<?xml version="1.0" encoding="UTF-8"?>
<!-- exportiert aus Datenbank: DUM>
<DUM>
<record>
<tag>Text</tag>
[…]
</record>
</DUM>
Kann mir jemand helfen? Schon jetzt vielen Dank!!!
ich habe leider gar keine Ahnung von Powershell, nutze aber folgenden Code, den mir schon mal jemand im Forum geschrieben hatte und der super funktioniert:
gci 'C:\Users\Desktop\Export' -File -Filter *.xml | %{
$xml = New-Object XML
$xml.Load($_.Fullname)
$node = $xml.SelectSingleNode("/DUM/*[1]")
$xml.RemoveChild($xml.DocumentElement) | out-null
$xml.AppendChild($node) | out-null
$xml.Save($_.Fullname)
}
Wenn es irgendwie geht, würde ich Powershell jetzt gerne Folgendes zusätzlich sagen: suche nach dem mehrfach vorkommenden Knoten/Attribut (?) "<tag>"; benenne den ersten um in "<tag1>", den zweiten in "<tag2>" usw.
Hier noch ein Ausschnitt aus der XML-Datei (vor der Anwendung oben):
<?xml version="1.0" encoding="UTF-8"?>
<!-- exportiert aus Datenbank: DUM>
<DUM>
<record>
<tag>Text</tag>
[…]
</record>
</DUM>
Kann mir jemand helfen? Schon jetzt vielen Dank!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 601925
Url: https://administrator.de/forum/xml-tags-bearbeiten-bzw-nummerieren-601925.html
Ausgedruckt am: 27.06.2025 um 04:06 Uhr
3 Kommentare
Neuester Kommentar

Moinsens.
Gruß eagle
gci 'C:\Users\Desktop\Export' -File -Filter *.xml | %{
$xml = New-Object XML
$xml.Load($_.Fullname)
$node = $xml.SelectSingleNode("/DUM/*[1]")
$xml.RemoveChild($xml.DocumentElement) | out-null
$xml.AppendChild($node) | out-null
$xml.SelectNodes('//tag') | %{$cnt = 1}{
$new = $xml.CreateElement("tag$cnt")
$new.innerXML = $_.innerXML
$_.ParentNode.AppendChild($new) | out-null
$_.ParentNode.RemoveChild($_) | out-null
$cnt++
}
$xml.Save($_.Fullname)
}

Bittö, schönes Wochenende.