使用Powershell编辑XML文件会导致编码失败

时间:2017-03-24 14:15:46

标签: xml powershell iso-8859-1

使用Powershell 3.0,我想编辑一个由程序创建的XML文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Node1>
    <Child attr="&#x0A;" />
</Node1>

使用过的脚本:

$xml = [xml](Get-Content "C:\Users\XXX\Desktop\Test.xml" -Force)

# Save it directly :
$xml.Save("C:\Users\XXX\Desktop\Test2.xml")

# Force encoding :
$encoding = [Text.Encoding]::GetEncoding('ISO-8859-1') #
$writer = New-Object IO.StreamWriter("C:\Users\XXX\Desktop\Test3.xml",$false,$encoding)

$xml.Save($writer)
$writer.Close()

Test2.xml和Test3.xml(找到here)变为:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Node1>
  <Child attr="&#xA;" />
</Node1>

&#x0A;已替换为&#xA;

为什么? 我怎么能避免呢? (程序无法读取已编辑的文件)。

0 个答案:

没有答案