在Java中解析XML&符号

时间:2011-06-18 20:47:42

标签: java php xml

我下载了一个XML文件,我使用PHP生成,看起来与此类似

<?xml version="1.0" encoding="utf-8" ?> 
<customersXML> 
   ...
   <customer id="12" name="Me+%26+My+Brother" swid="1" /> 
   ...
</customersXML> 

现在我需要用Java解析它,但在此之前我使用了URL-Decode,因此XML成为了这个

<?xml version="1.0" encoding="utf-8" ?> 
<customersXML> 
   ...
   <customer id="12" name="Me & My Brother" swid="1" /> 
   ...
</customersXML> 

但是当我使用SAX解析XML文件时,我遇到了“&amp;”的问题。我怎么能绕过这个?

4 个答案:

答案 0 :(得分:5)

&符是xml(O'reilly Xml: Entities: Handling Special Content)中的特殊字符,需要进行编码。在发送之前将其替换为&amp;

答案 1 :(得分:2)

如果所讨论的XML首先不是urlencoded(它看起来不像),那么你不应该对其进行urldecoding。打破xml然后“不破”它真的不是最好的方法。只需使用原始的xml并解析它。

答案 2 :(得分:2)

永远不要将XML作为字符串处理而不解析它,否则您最终可能会遇到不再是XML的东西。正如你所发现的那样。

答案 3 :(得分:0)

你应该首先解析,然后解码。