首页 > 解决方案 > 更改 xml 文件中的非法字符

问题描述

我有一个 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>

标签: htmlxmlillegal-characters

解决方案


这不应该在生成 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 的绑定)


推荐阅读