Powershell: in XML-File xsd:string ersetzen
Hallo
Ich habe eine xml-Datei, in der ich den xsd:string "ano" durch "unbekannt" ersetzen will
Meine bescheidenen Powershell-Kenntnisse reichen leider nicht aus.
Kann mir bitte jemand den entscheidenden Denk-Anstoss geben?
In Zeile 5 wird schon mal die richtige Zeile "herausgesucht", nur fehlt mir hier, wie ich diese Zeile ändern kann
Die XML-Datei
Mein bisheriger Powershell-Code
Danke, Gruss
Ich habe eine xml-Datei, in der ich den xsd:string "ano" durch "unbekannt" ersetzen will
Meine bescheidenen Powershell-Kenntnisse reichen leider nicht aus.
Kann mir bitte jemand den entscheidenden Denk-Anstoss geben?
In Zeile 5 wird schon mal die richtige Zeile "herausgesucht", nur fehlt mir hier, wie ich diese Zeile ändern kann
Die XML-Datei
<?xml version="1.0"?>
<XProject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Data>
<XProjectColumn>
<Name>ProjectNo</Name>
<Value xsi:type="xsd:string">10021</Value>
</XProjectColumn>
<XProjectColumn>
<Name>ProjectNoPPS</Name>
<Value xsi:type="xsd:string"> </Value>
</XProjectColumn>
<XProjectColumn>
<Name>Description</Name>
<Value xsi:type="xsd:string"></Value>
</XProjectColumn>
<XProjectColumn>
<Name>CreatedBy</Name>
<Value xsi:type="xsd:string">anonym</Value>
</XProjectColumn>
<XProjectColumn>
<Name>CurrentUser</Name>
<Value xsi:type="xsd:string">ano</Value>
</XProjectColumn>
<XProjectColumn>
<Name>CreateDate</Name>
<Value xsi:type="xsd:dateTime">2022-10-28T06:47:52.9621759+02:00</Value>
</XProjectColumn>
<XProjectColumn>
<Name>LastChanged</Name>
<Value xsi:type="xsd:dateTime">2022-10-28T07:28:52.9277204+02:00</Value>
</XProjectColumn>
<XProjectColumn>
<Name>CurrentIndex</Name>
<Value xsi:type="xsd:int">1</Value>
</XProjectColumn>
<XProjectColumn>
<Name>MaxIndex</Name>
<Value xsi:type="xsd:int">1</Value>
</XProjectColumn>
<XProjectColumn>
<Name>Locked</Name>
<Value xsi:type="xsd:boolean">false</Value>
</XProjectColumn>
</Data>
</XProject>
Mein bisheriger Powershell-Code
$file = 'c:\temp\10021.xml'
$xml = [xml](gc $file)
[System.Xml.XmlNamespaceManager]$ns = new-Object System.Xml.XmlNamespaceManager $xml.NameTable
$ns.AddNamespace("ns",$xml.DocumentElement.NamespaceURI)
$xml.SelectNodes("//ns:Value",$ns) | where-object {$_.'#text' -eq 'ano'}
$xml.Save($file)
Danke, Gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4446797033
Url: https://administrator.de/forum/powershell-in-xml-file-xsd-string-ersetzen-4446797033.html
Ausgedruckt am: 22.12.2024 um 09:12 Uhr
2 Kommentare
Neuester Kommentar
$file = 'c:\temp\10021.xml'
$xml = [xml](gc $file)
[System.Xml.XmlNamespaceManager]$ns = new-Object System.Xml.XmlNamespaceManager $xml.NameTable
$ns.AddNamespace("ns",$xml.DocumentElement.NamespaceURI)
$ns.AddNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance")
$xml.SelectNodes("//ns:Value[@xsi:type = 'xsd:string' and . = 'ano']",$ns) | %{$_.innerText = 'unbekannt'}
$xml.Save($file)
$file = 'c:\temp\10021.xml'
$xml = [xml](gc $file)
$xml.XProject.Data.XProjectColumn.Value | ?{$_.type -eq 'xsd:string' -and $_.innerText -eq 'ano'} | %{$_.innerText = 'unbekannt'}
$xml.Save($file)