保留角色'&'而使用JAXBContext的umarshalling

时间:2012-11-07 12:42:28

标签: xml encoding character-encoding jaxb

我正在使用JAXBContext来解组XML字符串。但是如果字符串包含'&',我的代码就会失败标签内的字符。但我需要保持这样的价值。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

根据您的评论回复,您有“xml”,如

<category>Play & Boy</category>

这是不是 xml,因为xml规则禁止使用未转义的'&amp;'这个位置上的角色。

您应该将此类“xml”更改为

<category>Play &amp; Boy</category>
在源xml中

,以便它是格式良好的xml。

你可以编码“&amp;”作为“&amp;”在这个非格式良好的xml的预处理器中,你必须自己编写预处理代码,并注意转义'&amp;'已经属于编码的字符,例如&amp;&lt;,因为您不希望将它们转换为&amp;amp;&amp;lt;

如果你能做到这一点,那么最好让这个xml的供应商提供格式良好的xml。

答案 1 :(得分:1)

您的问题有两种可能性:

  1. 删除&amp;:<category>Play&Boy</category>之前和之后的所有空格应该有用。
  2. 更好的解决方案:<category><![CDATA[Play & Boy]]></category>将被解组为“Play&amp; Boy”。