Вопрос по xml, sax, android – Сбой синтаксического анализа Android Android Неожиданный токен

3

В моем приложении (игре) мне нужно прочитать скрипт XML и превратиться в объект класса; я завершил весь XML-ридер с помощью DOM

но когда я бегу, я получаю следующую ошибку:

<code>05-08 23:03:22.342: I/System.out(588): XML Pasing Excpetion = org.xml.sax.SAXParseException: Unexpected token (position:TEXT ��������������������[email protected]:69 in [email protected]29a200) 
</code>

Я прочитал некоторые ответы по этому поводу, но все они не смогли решить мою проблему (http://stackoverflow.com/questions/7885962/android-utf-8-file-parsing) ..

вот мой код:

<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);
</code>

в соответствии с проблемой, я также пытался это сделать:

<code> InputStream inputStream = ctx.getResources().openRawResource(R.xml.script);
 Document root = db.parse(inputStream);
</code>

который произвел точно такие же исключения ...

Как решить эту проблему?

мой xml файл:

<code><script>

<scene no="0">
    <character id="1">1</character>

    <dialog no="1">
        <title>1</title>
 Sub-Element 1
    </dialog>
</scene>



</script>
</code>

Ваш Ответ

2   ответа
3

res & quot; папка. Вы должны хранить его в «активах». Res-решение не работает из-за специфического "res" папка и ее презентация в апк. Переместите свой файл в раздел «активы» и вы увидите, что все работает. Используйте следующий код для создания InputSource

getAssets().open("yourfilename.xml")
6

XML-документы также должны начинаться с тега, определяющего его как XML:<?xml version="1.0" ?> Таким образом, ваш полный файл будет:

<?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>

Или вы можете использовать & quot; Sub-Element & quot; в качестве имени элемента (вместоsomething_else) и 1 в качестве значения.

Похожие вопросы