在我的应用程序(游戏)中,我需要读取XML脚本并将其转换为类对象;我已经通过DOM完成了整个XML阅读器
但是当我跑步时,我收到以下错误:
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)
我已经阅读了一些关于此的答案,但他们都未能解决我的问题(https://stackoverflow.com/questions/7885962/androID-utf-8-file-parsing)..
这是我的代码:
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);
根据问题,我也试过这个:
inputStream inputStream = ctx.getResources().openRawResource(R.xml.script); document root = db.parse(inputStream);
这产生了完全相同的例外……
如何解决这个问题呢?
我的xml文件:
<script><scene no="0"> <character ID="1">1</character> <dialog no="1"> <Title>1</Title> Sub-Element 1 </dialog></scene></script>
解决方法:
您的XML无效. “子元素1”应该在元素本身内.
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>
或者您可以使用“子元素”作为元素名称(而不是something_else),并使用1作为值.
总结以上是内存溢出为你收集整理的Android XML解析失败意外令牌全部内容,希望文章能够帮你解决Android XML解析失败意外令牌所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)