2010-12-16 11 views
1

Ich habe ein Problem beim Parsen einer lokalen XML-Datei mit Sax Parser. Es wirft beim Parsen eine Ausnahme auf.Wie Parsen Xml von SD-Karte mit Sax Parser in Android?

*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(); 
    } 

Bitte kann irgendeinen Fehler herausfinden, den ich mache? Und gibt es eine andere Methode, lokale XML-Dateien zu analysieren? Wenn ja, geben Sie mir einen Beispielcode.

deinnkening Sie, Srinivas

Antwort

0

Ihr Parsing-Code scheint gültig zu sein, die xml falsch ist. Bitte überprüfen Sie die 7. Zeile der contents.xml. Versuchen Sie es mit online xml validators zu validieren.

0

Es gibt mehrere Möglichkeiten, XML auf Android zu parsen, und sie werden mit netten Beispielen in this article gut erklärt. Wie bereits in der vorherigen Antwort erwähnt, ist Ihr XML-Code ungültig (enthält ein ungültiges Token). Sie können auch versuchen, Ihre XML-Datei im Browser zu öffnen, die in den meisten Fällen Fehler in schlechtem XML-Format meldet.

0

bereites Parse Leser so geworden zu ändern:

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