Benutzer mit den meisten Antworten
Element aus meheren .xml ändern

Frage
-
Hallo Leute,
ich habe mehrere .xml-Files mit folgenden Inhalt:
<?xml version="1.0">
<translation language="de" ...>
...
Ich möchte nun mithilfe von Powershell, language="de" durch "ro" ersetzen.
Wie geht das, wenn ich auf den Wert in der "<>" ersetzen will.
Danke euch.
Antworten
-
Hallo,
Das sollte so funktionieren:
$xml = [xml]'<?xml version="1.0" ?><translation language="de" />' $xml.translation.language = "ro"
Den Inhalt der xml Files kannst Du per Get-Content laden und anschliessend mit $xml.Save("filename.xml") wieder speichern- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 14. Februar 2018 13:30
-
Hallo,
Der Ansatz geht meines Wissens nur bei so einer Syntax:
$xml = [xml]'<translation><language>de</language></translation>' $xml.translation.language = 'ru'
Das könnte deine Lösung sein :
$xml = [xml]'<?xml version="1.0" ?><translation language = "de" />' $node = $xml.SelectSingleNode("//translation[@language='de']") $node.language = 'ro'
grüße Andy
- Bearbeitet Andreas Bittner Freitag, 9. Februar 2018 08:32
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 14. Februar 2018 13:30
Alle Antworten
-
Hallo,
Das sollte so funktionieren:
$xml = [xml]'<?xml version="1.0" ?><translation language="de" />' $xml.translation.language = "ro"
Den Inhalt der xml Files kannst Du per Get-Content laden und anschliessend mit $xml.Save("filename.xml") wieder speichern- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 14. Februar 2018 13:30
-
Hab ich auch schon probiert, will aber leider nicht.
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
- Nicht als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
-
Hallo,
Der Ansatz geht meines Wissens nur bei so einer Syntax:
$xml = [xml]'<translation><language>de</language></translation>' $xml.translation.language = 'ru'
Das könnte deine Lösung sein :
$xml = [xml]'<?xml version="1.0" ?><translation language = "de" />' $node = $xml.SelectSingleNode("//translation[@language='de']") $node.language = 'ro'
grüße Andy
- Bearbeitet Andreas Bittner Freitag, 9. Februar 2018 08:32
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 9. Februar 2018 11:41
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 14. Februar 2018 13:30
-
Wenn die XML-Datei tatsächlich so aussieht wie oben berschrieben, funktionieren beide Lösungen einwandfrei. Wenn das bei dir nicht der Fall ist, poste bitte mal einen Auzug der Original-XML und genau den Code den du zum ändern benutzt hast.
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.