Powershell - 如何在文件中停止XML自动更正html?

时间:2013-04-24 15:48:52

标签: html xml powershell

有没有办法阻止Powershell转换/读取文件中的html字符?

如果我只是打开然后保存xml文件:

[xml]$xml = get-content "c:\file.xml"
$xml.save("c:\file.xml") 

以下密钥被更改

从:

<add key="TimeFormat" value="h:mm&#160;tt"/>

为:

<add key="TimeFormat" value="h:mm tt" />

关键是,我不希望它改变任何文本,我希望HTML实体保持原样。

由于

1 个答案:

答案 0 :(得分:0)

&#160;0xA0)是ISO-8859-1中的不间断空格,但不是UTF-8中的有效字符。可能发生以下两件事之一:

  1. Powershell期待(或您的XML文件声称为)UTF-8,而Powershell正在静默地用空格替换无效字符。如果是这种情况,那真的应该抱怨错误信息。
  2. (更有可能)XML文件具有指定ISO-8859-1的正确标头,而Powershell正在用实际的“0xA0”字节替换该实体。就XML标准而言,这是一个非常有效的事情,你必须查看Powershell的XML文档,看看你是否可以提供XML序列化程序的选项来阻止这种转换。