我有一个相当大的 XML 文件,我需要在其中替换一些连接字符串。
我使用以下代码替换字符串:
$temp = Get-Content .\bigxmlfile.xml
$temp.replace("STRING1","STRING2") | out-file .\bigxmlfile.xml -force
这会很好地更改字符串,但由于某种原因,总是会破坏 XML。我很难弄清楚为什么。
我有一个相当大的 XML 文件,我需要在其中替换一些连接字符串。
我使用以下代码替换字符串:
$temp = Get-Content .\bigxmlfile.xml
$temp.replace("STRING1","STRING2") | out-file .\bigxmlfile.xml -force
这会很好地更改字符串,但由于某种原因,总是会破坏 XML。我很难弄清楚为什么。
Out-File
默认情况下正在写入 Unicode 文件。用于-Encoding
修复它:或者,使用
Set-Content
:如果您使用不支持 XML 的工具处理 XML,您将始终面临这种风险。如果您想对 XML 进行转换,最好的工具是 XML 转换语言 XSLT。
您是否尝试过使用 Import-CLIXML 而不是 Get-Content?
我不知道它处理大型或复杂 xml 文件的能力如何,但值得一试。