使用JDOM解析时处理特殊字符

时间:2015-01-14 08:33:21

标签: java xml encoding jdom-2

我有一个xml,我正在用JDOM 2.0.5解析

<?xml version=\"1.0\" encoding=\"UTF-8\"?><order><BGP1>true</BGP1><BGP2>Metro_C&amp;amp;C</BGP2></order>

现在尝试使用node.getValue()获取标记的值,其中node是Element类型,它给我的节点值为

Metro_C&amp;C and not Metro_C&amp;amp;C

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

行为是正确的,你的期望是错误的。节点的文本值为Metro_C&amp;C。当您将其编码为XML时,&字符必须替换为&amp;,因为它对XML具有特殊含义。

但我的感觉是输入数据已经损坏了。文本值可能应为Metro_C&C,这将使XML编码值为Metro_C&amp;C。像amp;amp;这样的模式表明有人对数据进行了两次编码。