zini123

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!!!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 601925

Url: https://administrator.de/forum/xml-tags-bearbeiten-bzw-nummerieren-601925.html

Ausgedruckt am: 27.06.2025 um 04:06 Uhr

145916
Lösung 145916 04.09.2020 aktualisiert um 14:29:02 Uhr
Goto Top
Moinsens.
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)
}
Gruß eagle
Zini123
Zini123 04.09.2020 um 14:58:53 Uhr
Goto Top
Funktioniert perfekt! Vielen lieben Dank!!!
145916
145916 04.09.2020 um 15:24:42 Uhr
Goto Top
Bittö, schönes Wochenende.