【发布时间】:2012-02-12 12:57:20
【问题描述】:
我正在使用 JAXB 生成上传到我们的 Google 提要的 XML。在测试并将这个新方法的输出与我们使用旧方法(使用 JSP)的输出进行比较时,我注意到单引号字符没有得到正确处理。
字段内容:
& ' " > <
旧的正确输出:
<title> & ' " > < </title>
新的错误输出:
<title> & ' " > < </title>
我尝试将字段中的所有单引号字符替换为
'
在我编组 XML 之前,但这最终会用它的字符代码替换 & 符号,并且在编组后留下一个无用的 #39。
我应该在什么时候尝试解决这个问题?我可以通过在将字符串传递到 JAXB 类之前以某种方式更改字符串来获得正确的行为,还是我必须做些什么来更改编组处理单引号的方式?
感谢阅读!
编辑: 抱歉,我之前没有说得更清楚,Google 的文档要求这 5 个字符由它们的实体或字符代码表示。
来自他们的文档:
不在 CDATA 部分中的数据值(包括 URL)必须对 下表。您可以使用实体代码或字符代码来表示这些特殊字符。
Ampersand & & &
Single Quote ' ' '
Double Quote " " "
Greater Than > > >
Less Than < < <
如果可能,我想避免使用 CDATA 路由。
【问题讨论】:
标签: java xml jaxb escaping html-entities