如何在android中使用sax解析器从sdcard解析xml?
问题描述:
我使用sax解析器解析本地xml文件时遇到问题。它在解析时抛出异常。如何在android中使用sax解析器从sdcard解析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文件?如果是这样给我一些示例代码。
感谢你, SRINIVAS
答
有解析Android上的XML几种可能的方式,以及他们在this article具有很好的例子很好地解释。 正如前面的回答所述,您的XML无效(里面有无效的标记)。您也可以尝试在浏览器中打开您的XML文件,这在大多数情况下会在格式错误的XML中报告错误。
答
试图改变自己的解析读者变成了这个样子:
reader.parse(new InputSource(new FileInputStream(file)));