Android XML parse failed Unexpected token

android, sax, xml

Solution

Your XML is invalid. "Sub-Element 1" should be within an element itself. XML-documents should also begin with a tag defining it as XML: `<?xml version="1.0" ?>` So your complete file would be:

<?xml version="1.0" ?>
<script>
<scene no="0">
    <character id="1">1</character>
    <dialog no="1">
        <title>1</title>
        <something_else>Sub-Element 1</something_else>
    </dialog>
</scene>
</script>

Or you could use "Sub-Element" as the element name (instead of `something_else`) and 1 as the value.

Problem

In my app(game), i need to read a XML script and turn in into a class object; i've completed the entire XML reader via DOM but when i run , i got the following error: ``` 05-08 23:03:22.342: I/System.out(588): XML Pasing Excpetion = org.xml.sax.SAXParseException: Unexpected token (position:TEXT ��������������������...@1:69 in java.io.InputStreamReader@4129a200) ``` i've read some answers about this but they all failed to fix my problem (http://stackoverflow.com/questions/7885962/android-utf-8-file-parsing).. here's my code: ``` InputStream inputStream = ctx.getResources().openRawResource(R.xml.script); ctx.getApplicationContext().getPackageName()+"/xml/"+path); Reader reader = new InputStreamReader(inputStream,"UTF-8"); InputSource is = new InputSource(reader); is.setEncoding("UTF-8"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document root = db.parse(is); ``` according to the problem, i've also tried this to: ``` InputStream inputStream = ctx.getResources().openRawResource(R.xml.script); Document root = db.parse(inputStream); ``` which produced exactly the same exceptions... how to solve this problem? my xml file: ``` <script> <scene no="0"> <character id="1">1</character> <dialog no="1"> <title>1</title> Sub-Element 1 </dialog> </scene> </script> ```

Original source