我正在尝试使用 Powershell 从文件中解析以下 XML,而不是使用 [xml] 将其实际加载为 XML 文档,因为该文档包含错误。
<data>
<company>Walter & Cooper</company>
<contact_name>Patrick O'Brian</contact_name>
</data>
要成功加载文档,我需要通过替换特殊字符来修复错误,如下所示
& with &
< with <
' with ' etc..
我知道我可以做这样的事情来查找和替换文档中的字符
(Get-Content $fileName) | Foreach-Object {
$_-replace '&', '&' `
-replace "'", "'" `
-replace '"', '"'} | Set-Content $fileName
但这将替换文件中任何地方的字符,我只对检查 xml 标签内的字符(如 <company>)感兴趣,并将它们替换为 xml 安全实体,以便生成的文本是我可以使用 [xml] 加载的有效文档。