在 Java 处理 XML 时,必须转义的 5 个预定义实体字符如下:

- `&` (和号) → 转义为 `&` (最核心,用于防止解析器误认实体开始)
- `<` (小于号) → 转义为 `&lt;` (防止被误认为标签开始)
- `>` (大于号) → 转义为 `&gt;` (防止被误认为标签结束,虽非严格强制但建议转义)
- `"` (双引号) → 转义为 `&quot;` (仅在属性值中使用双引号包裹时需转义)
- `'` (单引号) → 转义为 `&apos;` (仅在属性值中使用单引号包裹时需转义)

关键注意事项
- 严格性:`&` 和 `<` 在文本内容中必须转义,否则会导致 XML 解析错误;`>`、`"`、`'` 在特定上下文(如属性值)中才强制要求,但统一转义是最佳实践 。
- 替代方案:若文本包含大量特殊字符(如代码片段),可使用 `<![CDATA[ ... ]]>` 区段包裹内容,区内字符无需转义,但区内不能包含 `]]>` 。
- Java 实现建议:避免手动 `replace` 导致遗漏或顺序错误,优先使用标准库:
  - Apache Commons Text: `StringEscapeUtils.escapeXml11(input)`
  - DOM API: 通过 `Element.setTextContent()` 自动处理转义 。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐