【发布时间】:2020-04-28 16:13:31
【问题描述】:
大多数字符编码的答案是 commons.text 版本中的 Apache StringEscapeUtils。同意。可用于转义 xml 标签之间的字符串。 但是如何自己转义 xml 标记呢?
允许的字符很简单:https://www.w3.org/TR/xml11/#sec-common-syn
我的用例是将数据库表转换为 XML,其中每个列名都是一个 xml 标记。
<ROW><COL1>Hello</COL1></ROW>
工作正常,但如果列名是“/BIC/COL1”怎么办?
<ROW></BIC/COL1>Hello<//BIC/COL1></ROW>
显然无效。目前我什至没有关于编码的样子的计划。需要使用 _x26BIC_x26COL1 标记名称或类似名称。
我忽略了什么?
【问题讨论】:
-
请edit 您的问题包括您用于创建 XML 文档的 API。还要添加构建 XML 文档所需的当前源代码。
-
那无济于事。我使用 olingo v4 创建 odata 文档。此外,这个问题很笼统。无论您如何创建 XML 文档,如果生成器不转义 xml 标记名称并允许任何字符串,我都必须对其进行编码。从这个意义上说,源代码是 out.println("/COL1>");
-
这不是字符编码问题。不,我不同意 Apache 的 StringEscapeUtils 是大多数编码问题的答案。尽管在许多网络协议中有很多转义问题,但从未使用过它。否则,@Progman 的第二个建议可能是前进的方向。
标签: java xml stringescapeutils