2010-12-16 157 views
1

我使用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

回答

0

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

0

有解析Android上的XML几种可能的方式,以及他们在this article具有很好的例子很好地解释。 正如前面的回答所述,您的XML无效(里面有无效的标记)。您也可以尝试在浏览器中打开您的XML文件,这在大多数情况下会在格式错误的XML中报告错误。

0

试图改变自己的解析读者变成了这个样子:

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