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