替换无效 XML 中的 &

Replacing & in invalid XML's

我需要将 XML 转换为 JSON,解析 JSON 并将其按原样保存在数据库中(因为它来自传入的 XML).传入的 XML 的数据包含 & 及其 HTML 等价物 &。为了保存这样的 XML,我尝试将 & 替换为它们的 HTML 等价物,但是当我想尝试恢复到 [=20] 中的原始数据时,这搞砸了=] 在将它们保存到数据库之前。任何关于如何做到这一点的意见都将不胜感激。

首先尝试确定是否可以从源头修复错误:找出(非)XML 是如何生成的,修复创建它的程序,然后正确地重新生成数据。

如果您除了修复损坏的数据别无选择,请先调查它,以便您准确了解您正在处理的损坏情况。特别是,建立所有正确和错误使用符号的数据模式。

然后使用基于文本的工具(不是基于 XML 的工具),例如 sed 或 perl 来匹配您发现的模式并更正它们。

但这只是一次性的,不要让它成为常态。你不会接受供应商的次品,你为什么要接受次品XML?