Hi Leute,
ich verzweifle gerade an einem xml File.
Es soll mittels Powershell mit einem neuen Eintrag erweitert werden.
Die Struktur sieht folgendermaßen aus:
<userSettings>
<Test.Properties.Settings>
<setting name="FileParameter" serializeAs="String">
<value>Test</value>
</setting>
<setting name="AppsToStart" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>C:\Test.exe</string>
</ArrayOfString>
</value>
</setting>
</Test.Properties.Settings>
</userSettings>
Die Erweiterung sieht vor, dass eine weitere App unter "setting name=AppsToStart" eingetragen werden soll.
Um das "einzuleiten" wird die xml eingelesen, folgend ein neues Element mit Create.Element erstellt - ok so far.
Aber wie bekomme ich das nun genau auf die Position?
Soll dann so aussehen:
<setting name="AppsToStart" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>C:\Test.exe</string>
<string>C:\Test_II.exe</string>
</ArrayOfString>
</value>
</setting>
Es bedarf ja eigentlich nur wenige Zeilen code...
$xmlData=[xml](Get-Content -Path $xmlPath -Encoding UTF8)
$NewEntry="C:\Test_II.exe"
$NewElement=$xmlData.CreateElement("string")
$NewElement.InnerText=$NewEntry
$targetElement=$xmlData.SelectSingleNode("//userSettings//Test.Properties.Settings//setting[@name='AppsToStart']")
$targetElement.AppendChild($NewElement) | Out-Null
Ist wohl dicht dran, passt aber noch nicht, weil der Eintrag hinter dem /ArrayOfString und sogar hinter /value eingetragen wird...
Was muss ich anders machen, damit der Eintrag an der richtigen Stelle auftaucht?
Vorab vielen Dank für Eure Hilfe.
Grüße, ZippiScrippi