java - 替换格式不正确的 XML 正文中的字符

标签 java xml non-well-formed

在我正在处理的 (Java) 代码中,我有时会处理格式不正确的 XML(表示为 Java String ),例如:

<root>
  <foo>
    bar & baz < quux
  </foo>
</root>

由于这个 XML 最终需要被解码(使用 JAXB),显然这个 XML 在解码时会抛出异常。

替换 & 的最佳方法是什么?和 <到它的角色实体?对于 & , 这很简单:

xml.replaceAll("&", "&amp;")

但是,对于 <符号,这有点棘手,因为显然我不想替换 <用于打开“括号”的 XML 标记。

除了扫描字符串并手动替换 < 之外在带有 &lt; 的 XML 正文中,您还能建议其他什么选择?

最佳答案

坦率地说,修复格式错误的 XML 的最佳方法是将其发回给生成它的人,并要求他们向您发送格式正确的 XML。你展示了一个简单的例子,它可能有一个解决方案,但修复格式错误的 XML 的通用方法将是一项可怕的工作。

并且由于不需要 XML 解析器来处理格式错误的 XML,因此您的解析器也不需要这样做。只是不要这样做。

关于java - 替换格式不正确的 XML 正文中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008606/

相关文章:

java - Java 版本

java - 说明如何使用 startActivityForResult 将数据发送到上一个 Activity

c# - 使用 C# 将 XDocument 或 XmlDocument 转换为 JSON

php - 我究竟做错了什么?使用 php 创建 xml

Java 说 XML 文档格式不正确

java - 在 JAVA 中如何确定 HTML 文档的格式是否正确?

java - Hibernate 只加载列表中的一个对象

php - 将 CDATA 添加到 xml 节点

java - 我如何反省 freemarker 模板以找出它使用的变量?