powershell 修改xml. 未修改的空格项目 自动变换行了。
-----------------------PS----------------------------
PS D:> [xml]$x=Get-Content "D:\abc.xml"
PS D:> $x.AA.BB.c1="YY"
PS D:> [xml]$x.save("d:\ab.xml")
我只修改了C1, 结果有空格的项目 也自动被改变了(文本查看)。 请问怎么解决 谢谢。
我建议不要修改,因为这个对应打开软件的读取实现方式。
在上面的代码中,使用 [xml]$x.save("d:\ab.xml") 命令将修改后的 XML 保存到文件中时,会格式化 XML 并将其保存。为了避免这个问题,可以使用 $x.OuterXml 属性来保存 XML,而不是使用 [xml]$x.save("d:\ab.xml") 命令。
PS D:> [xml]$x=Get-Content "D:\abc.xml"
PS D:> $x.AA.BB.c1="YY"
PS D:> $x.OuterXml > "d:\ab.xml"
这样就可以保存原始XML格式, 避免空格被改变.
望采纳!
这是因为在 PowerShell 中修改 XML 文件时,如果对节点进行修改,它会自动格式化输出。为了避免这种情况,可以在保存文件之前,使用 $x.OuterXml 来获取已修改的 XML 字符串,然后将其写入新文件中。
例如:
$xml = [xml](Get-Content "D:\abc.xml")
$xml.AA.BB.c1 = "YY"
$xmlString = $xml.OuterXml
$xmlString | Out-File "d:\ab.xml" -Encoding UTF8
这样就可以保证格式不变。
那个¥符号是不是错了,感觉应该是$才对啊