XML解析异常
0
最近看了一下微信支付的接口,不得不说这接口还用的是XML,在当下JSON火热的情况下使用XML还是要一定勇气的。
而且最坑爹的是XML不能使用<![CDATA[]]
,自己还要转义,但他返回的XML居然可以使用。
好吧进入主题,说一下这个问题,下面是TX返回的内容:
<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[appid不存在]]></return_msg>
</xml>
问题很简单,就是xml没有设置编码,所以:
org.dom4j.DocumentException: 1 字节的 UTF-8 序列的字节 1 无效。 Nested exception: 1 字节的 UTF-8 序列的字节 1 无效。
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
解决办法也简单:
SAXReader saxReader = new SAXReader();
saxReader.read(new InputSource(new ByteArrayInputStream(content.getBytes("UTF-8")))); //设置一下编码就可以了