0 Pluspunkte 0 Minuspunkte

Wenn ich eine XML Datei mit einer Liste von Elementen habe.

<Root>
  <Person>
    <FirstName>Willi</FirstName>
    <LastName>Wonker</LastName>
    <Age>30</Age>
  </Person>
  <Person>
    <FirstName>Horst</FirstName>
    <LastName>Schlemmer</LastName>
    <Age>68</Age>
  </Person>
  <Person>
    <FirstName>Paul</FirstName>
    <LastName>Panzer</LastName>
    <Age>47</Age>
  </Person>
  <Person>
    <FirstName>Beetle</FirstName>
    <LastName>Juice</LastName>
    <Age>22</Age>
  </Person>
</Root>

Wie kann ich am einfachsten ein Element an einer bestimmten Position (z.B an der 3.) einfügen?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist ein Powershell Script um ein XML Element an einer bestimmten Position einzufügen.

$xml = [xml](Get-Content "Person.xml")

$newPerson = $xml.CreateElement("Person")
$firstName = $xml.CreateElement("FirstName")
$firstName.InnerText = "NeuerVorname"
$lastName = $xml.CreateElement("LastName")
$lastName.InnerText = "NeuerNachname"
$age = $xml.CreateElement("Age")
$age.InnerText = "NeuesAlter"

$newPerson.AppendChild($firstName)
$newPerson.AppendChild($lastName)
$newPerson.AppendChild($age)

$position = 3
$targetElement = $xml.SelectNodes("//Person")[$position - 1]

$xml.DocumentElement.InsertAfter($newPerson, $targetElement)

$xml.Save("Person.xml")
von