首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >org.apache.harmony.xml.ExpatParser$ParseException(invalid令牌)

org.apache.harmony.xml.ExpatParser$ParseException(invalid令牌)
EN

Stack Overflow用户
提问于 2014-01-29 04:27:33
回答 2查看 4.6K关注 0票数 3

我使用以下两种方法来解析我的Xml数据:

代码语言:javascript
运行
复制
private static XMLReader prepareSAX() throws ParserConfigurationException,
        SAXException {
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();

    return sp.getXMLReader();
}
public static void LectorSAX(XMLReader xr, String url) {
    try {

        InputSource is = new InputSource(url);
        is.setEncoding("UTF-8");
        xr.parse(is);
    } catch (SAXException e) {
        System.err.println("Error de sax LectorSAX.java: " + e);
        e.printStackTrace();
    } catch (IOException e) {
        System.err.println("Error de  io LectorSAX.java: " + e);
        e.printStackTrace();
    }
}

现在,我的Xml数据如下:

代码语言:javascript
运行
复制
<Product>
<Product_ID>22434</Product_ID>
<Chinese_Name>三Q 逆齡速效霜</Chinese_Name>
<English_Name>Q10 QUICK GEL MOIST & WHITENING</English_Name>
<Image_Path>http://www.abc.com/prodImage/dtl/13011015,38,8.jpg</Image_Path>
<Original_Price>880</Original_Price>
<Discounted_Price>0</Discounted_Price>
<Product_Detail><![CDATA[<html><body>三Q 逆齡速效霜</br>Q10 QUICK GEL MOIST & WHITENING<br><br></body></html>]]></Product_Detail>
</Product>

我开始感到恶心了:

代码语言:javascript
运行
复制
01-29 04:14:10.637: W/System.err(1665): Error de sax LectorSAX.java: org.apache.harmony.xml.ExpatParser$ParseException: At line 185, column 36: unknown encoding
01-29 04:14:10.758: W/System.err(1665):     at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:515)
01-29 04:14:10.758: W/System.err(1665):     at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:474)
01-29 04:14:10.758: W/System.err(1665):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:321)
01-29 04:14:10.818: W/System.err(1665):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:294)
01-29 04:14:10.818: W/System.err(1665):     at com.dhc.xmlparsing.XMLParser.LectorSAX(XMLParser.java:79)

我的第185行是English_Name标签。所以在我做错的地方,请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-03 04:48:06

最后得到了一个解决方案,这是saxParser编码“&”(特殊字符)的问题,所以我用&amp;代替了"&“。现在,它完美地工作了,代码如下所示:

代码语言:javascript
运行
复制
    response = response.replaceAll("&", "&amp;");
    InputSource inputSource = new InputSource();
    inputSource.setEncoding("UTF-8");
    Log.i("TAG", "response" + response);
    inputSource.setCharacterStream(new StringReader(response));
    xr.parse(inputSource);
票数 8
EN

Stack Overflow用户

发布于 2014-10-22 05:42:45

我在代码中也面临着同样的问题,我尝试了下面的解决方案。对我起作用了。

代码语言:javascript
运行
复制
InputSource inputSource = new InputSource();
inputSource.setEncoding("ISO-8859-1");
inputSource.setCharacterStream(new StringReader(response));
xr.parse(inputSource);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21422101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档