更改 xml 文件中的非法字符

Change illegal character in xml file

我有一个 XML 文件,其结构如下:

<tag1>
<tag2>This is<>a<AA>text</tag2>
<ABC>0123-</xyz>-89</ABC>
</tag1>

如何将所有非法<>更改为<和> 结果应如下所示:

<tag1>
    <tag2>This is&lt;&gt;a&lt;AA&gt;text</tag2>
    <ABC>0123-&lt;/xyz&gt;-89</ABC>
</tag1>

这不应该在生成 XML 之后修复,这是首先生成 xml 的代码中的错误。修复生成无效 XML 的生成器,之后不要修复无效 xml。

关于编码规范,请查看 https://www.w3.org/TR/xml/#intern-replacement 中的 XML 规范,但请注意,许多编程语言已经有这些东西的函数或库,例如 XML-在 PHP 中编码一个字符串,做 htmlspecialchars ( $str, ENT_QUOTES | ENT_SUBSTITUTE | ENT_DISALLOWED | ENT_XML1, 'UTF-8', true );

对于许多其他语言,有 libxml2,请检查 http://xmlsoft.org/(它绑定了 C、C++、C#、Python、Delphi/Pascal, Ruby, Perl, PHP)