在我正在处理的 (Java) 代码中,我有时会处理格式不正确的 XML(表示为 Java String
),例如:
<root>
<foo>
bar & baz < quux
</foo>
</root>
由于这个 XML 最终需要被解码(使用 JAXB),显然这个 XML 在解码时会抛出异常。
替换 &
的最佳方法是什么?和 <
到它的角色实体?对于 &
, 这很简单:
xml.replaceAll("&", "&")
但是,对于 <
符号,这有点棘手,因为显然我不想替换 <
用于打开“括号”的 XML 标记。
除了扫描字符串并手动替换 <
之外在带有 <
的 XML 正文中,您还能建议其他什么选择?
最佳答案
坦率地说,修复格式错误的 XML 的最佳方法是将其发回给生成它的人,并要求他们向您发送格式正确的 XML。你展示了一个简单的例子,它可能有一个解决方案,但修复格式错误的 XML 的通用方法将是一项可怕的工作。
并且由于不需要 XML 解析器来处理格式错误的 XML,因此您的解析器也不需要这样做。只是不要这样做。
关于java - 替换格式不正确的 XML 正文中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008606/