繁体   English   中英

如何使用android中的sax解析器从sdcard解析xml?

[英]How to parse xml from sdcard using sax parser in android?

使用sax解析器解析本地xml文件时出现问题。 解析时抛出异常。

 *org.apache.harmony.xml.ExpatParser$ParseException: At line 7, column 247: not well-formed (invalid token)
org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:507)
org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:492)
org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:308)
org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)*


try {
        String path = Environment.getExternalStorageDirectory() + "/FlightGuide/"+stateName+"/contents.xml"; 
        File file = new File(path);
        SAXParserFactory parserFactory=SAXParserFactory.newInstance();
        SAXParser saxParser=parserFactory.newSAXParser();
        XMLReader reader=saxParser.getXMLReader();
        AirportHandler airportHandler = new AirportHandler();
        reader.setContentHandler(airportHandler);
        reader.parse(new InputSource(new InputStreamReader(new FileInputStream(file))));
        statePackage = airportHandler.getpaStatePackage();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace(); 
    } catch (IOException e) {

        e.printStackTrace();
    }

请有人能找出我在做什么错误吗? 还有其他解析本地xml文件的方法吗? 如果是这样,请给我一些示例代码。

谢谢你,斯里尼瓦斯

您的解析代码似乎有效,xml不正确。 请检查的七号线contents.xml 尝试使用在线xml验证器对其进行验证

有几种在Android上解析XML的可能方法, 本文中的示例很好地解释了它们。 如先前的回答所述,您的XML无效(内部具有无效令牌)。 您也可以尝试在浏览器中打开XML文件,这在大多数情况下会报告格式错误的XML错误。

尝试将您的解析阅读器更改为:

reader.parse(new InputSource(new FileInputStream(file)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM