Powershell und XML Tag an bestimmter Stelle einfügen
Es geht um folgendes
wenn ich mein XML in eine Variable einlese z.B. in die Variable $XML wird ein XML das Wie folgt aussieht
<?xml version="1.0" encoding="UTF-8"?>
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag5>Wert789</tag5>
</Gruppentag1>
<Gruppe2>
<Untergruppe>
<tag1>
ich weis dass ich mit $new zB. das tag4 erzeugen kann aber mit appendChild auf der Gruppentag ebene
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag5>Wert789</tag5>
<tag4>WertDEF</tag4>
</Gruppentag1>
sieht es so aus
wie schaffe ich es jetzt das es wie folgt aussieht
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag4>WertDEF</tag4>
<tag5>Wert789</tag5>
</Gruppentag1>
muss ich dazu das XML Node für Node einlesen und auf eine 2. Variable umschreiben oder gibt es einen Befehl anders als appendChild der das <tag> an der korrekten Stelle einfügt
wie es ein etwaiges inkludiertes schema vorschreibt ???
Danke
Lg Rainer
wenn ich mein XML in eine Variable einlese z.B. in die Variable $XML wird ein XML das Wie folgt aussieht
<?xml version="1.0" encoding="UTF-8"?>
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag5>Wert789</tag5>
</Gruppentag1>
<Gruppe2>
<Untergruppe>
<tag1>
ich weis dass ich mit $new zB. das tag4 erzeugen kann aber mit appendChild auf der Gruppentag ebene
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag5>Wert789</tag5>
<tag4>WertDEF</tag4>
</Gruppentag1>
sieht es so aus
wie schaffe ich es jetzt das es wie folgt aussieht
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag4>WertDEF</tag4>
<tag5>Wert789</tag5>
</Gruppentag1>
muss ich dazu das XML Node für Node einlesen und auf eine 2. Variable umschreiben oder gibt es einen Befehl anders als appendChild der das <tag> an der korrekten Stelle einfügt
wie es ein etwaiges inkludiertes schema vorschreibt ???
Danke
Lg Rainer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 546848
Url: https://administrator.de/contentid/546848
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
2 Kommentare
Neuester Kommentar
Auch kein Moin.
Dafür gibt's die Funktionen InsertAfter und InsertBefore
Beispiel:
Dafür gibt's die Funktionen InsertAfter und InsertBefore
Beispiel:
# Beispiel XML Object erzeugen
$xml = [xml]@"
<?xml version="1.0" encoding="UTF-8"?>
<Gruppentag1>
<tag1>Wert123</tag1>
<tag2>WertABC</tag2>
<tag3>Wert456</tag3>
<tag5>Wert789</tag5>
</Gruppentag1>
"@
# erstelle Element mit Inhalt
$newchild = $xml.CreateElement("tag4")
$newChild.InnerText = "WertDEF"
# Wähle den Referenzknoten mit XPath aus
$node = $xml.SelectSingleNode('/Gruppentag1/tag3')
# füge den neuen Knoten nach dem Referenzknoten ein
$node.ParentNode.InsertAfter($newChild,$node) | out-null
# Gib nur zur Anschauung den XML Code aus
$xml.OuterXml