Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android XML parse failed Unexpected token

Tags:

android

xml

sax

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>
like image 499
tom91136 Avatar asked Aug 30 '26 17:08

tom91136


1 Answers

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.

like image 163
Simon Forsberg Avatar answered Sep 02 '26 06:09

Simon Forsberg



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!