【问题标题】:How to parse xml from sdcard using sax parser in android?如何在android中使用sax解析器从sdcard解析xml?
【发布时间】:2011-05-26 13:51:35
【问题描述】:

我在使用 sax parser 解析本地 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文件的方法吗?如果是这样,请给我一些示例代码。

谢谢你, 斯里尼瓦斯

【问题讨论】:

    标签: android xml-parsing saxparser


    【解决方案1】:

    您的解析代码似乎有效,xml 不正确。请检查contents.xml 的第7 行。尝试使用online xml validators 进行验证。

    【讨论】:

      【解决方案2】:

      在 Android 上解析 XML 有几种可能的方法,this article 中的很好的示例对它们进行了很好的解释。 如上一个答案所述,您的 XML 无效(内部包含无效令牌)。您也可以尝试在浏览器中打开您的 XML 文件,这在大多数情况下会报告格式错误的 XML 错误。

      【讨论】:

        【解决方案3】:

        试着把你的解析阅读器改成这样:

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

        【讨论】:

          猜你喜欢
          • 2011-04-30
          • 2011-06-17
          • 1970-01-01
          • 2012-08-27
          • 2011-05-31
          • 1970-01-01
          • 2012-12-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多