簡體   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