Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB-封送单引号字符代码_Java_Xml_Jaxb_Escaping_Html Entities - Fatal编程技术网

Java JAXB-封送单引号字符代码

Java JAXB-封送单引号字符代码,java,xml,jaxb,escaping,html-entities,Java,Xml,Jaxb,Escaping,Html Entities,我正在使用JAXB生成上传到Google提要的XML。在测试和比较这个新方法的输出与我们以前的方法(使用JSP)的输出时,我注意到单引号字符没有得到正确处理 字段内容: & ' " > < 在我整理XML之前,但这最终用字符代码替换了符号,并在整理后留下了一个无用的#39 我应该在哪一点上尝试解决这个问题?在将字符串传递到JAXB类之前,我是否可以通过某种方式更改字符串来获得正确的行为,或者我是否必须做些什么来更改编组处理单引号的方式 谢谢你的阅读 编辑: 抱歉,我之前没有

我正在使用JAXB生成上传到Google提要的XML。在测试和比较这个新方法的输出与我们以前的方法(使用JSP)的输出时,我注意到单引号字符没有得到正确处理

字段内容:

& ' " > <
在我整理XML之前,但这最终用字符代码替换了符号,并在整理后留下了一个无用的#39

我应该在哪一点上尝试解决这个问题?在将字符串传递到JAXB类之前,我是否可以通过某种方式更改字符串来获得正确的行为,或者我是否必须做些什么来更改编组处理单引号的方式

谢谢你的阅读

编辑: 抱歉,我之前没有说得更清楚,谷歌的文档要求这5个字符用实体或字符代码表示

根据他们的文件:

不在CDATA节中的数据值(包括URL)必须对中列出的字符使用转义码 下表。可以使用实体代码或字符代码来表示这些特殊字符

Ampersand & &amp; &#38;
Single Quote ' &apos; &#39;
Double Quote " &quot; &#34;
Greater Than > &gt; &#62;
Less Than < &lt; &#60;
Ampersand&&&
单引号“&apos'
双引号“";
大于>62;
小于<<;

如果可能的话,我希望避免使用CDATA路线。

不必转义单引号。第二个输出在XML格式方面是正确的,而且更简洁,甚至更好

如果您想要细粒度地控制哪些字符被转义(以及如何转义),您可以尝试实现自己的。从未尝试过,但它被记录为JSXB RI的一个特性

另见:

@swoogles:我在我的答案中添加了
字符转义句柄的提示,你能试试吗?
<title> &amp; ' &quot; &gt; &lt; </title>
&#39
Ampersand & &amp; &#38;
Single Quote ' &apos; &#39;
Double Quote " &quot; &#34;
Greater Than > &gt; &#62;
Less Than < &lt; &#60;