Android xml parsing with saxparser

I am trying to parse an XML file using SaxParser on Android.

This is my xml file:

<?xml version="1.0" encoding="UTF-8"?> <cars> <car model="CitroenC3"> <maintenances> <xm:maintenance xmlns:xm="it.abandroid.c.car.m" distance="" price=""> <xm:type></xm:type> </xm:maintenance> </maintenances> <chargings> <xc:charging xmlns:xc="it.abcfuelconsumption.car.m" quantity="18" price="20" distance="400" consumption="14"/> </chargings> </car> </cars> 

And this is the code:

 // Handling XML SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); XmlResourceParser parser = getResources().getXml(R.xml.data); // Create handler to handle XML Tags ( extends DefaultHandler ) DataSaxHandler myXMLHandler = new DataSaxHandler(); xr.setContentHandler(myXMLHandler); InputStream is= getResources().openRawResource(R.xml.data); xr.parse(new InputSource(is)); 

After xr.parse, I have an Exception:

03-22 15: 24: 04.248: INFO / System.out (415): XML Pasing Excpetion =

 org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: not well-formed (invalid token) 

What could be wrong? Many thanks.

+3
source share
1 answer

AFAIR, any xml file in the res/ folder was compiled before it was placed in .apk. Try moving the XML file to the assets/ folder and loading it from there:

 xr.parse(new InputSource(getAssets().open("data.xml"))); 
+6
source

All Articles