1

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 ファイルを解析する他の方法はありますか? もしそうなら、サンプルコードを教えてください。

ありがとう、スリニバス

4

3 に答える 3

0

解析リーダーを次のように変更してみてください。

reader.parse(new InputSource(new FileInputStream(file)));
于 2012-01-18T02:12:12.153 に答える
0

解析コードは有効なようですが、xml が正しくありません。の 7 行目を確認してくださいcontents.xmlオンラインの xml バリデーターで検証してみてください。

于 2010-12-16T13:59:43.263 に答える
0

Android で XML を解析するにはいくつかの方法が考えられます。これらの方法については、この記事の優れた例を使用して詳しく説明しています。前の回答で述べたように、XML は無効です (内部に無効なトークンがあります)。また、ブラウザで XML ファイルを開こうとすると、ほとんどの場合、不適切な形式の XML でエラーが報告されます。

于 2010-12-16T19:28:08.820 に答える