所以,我有一个启动器活动,用户选择一个文件(实际上是一个包含.xml和.wav的目录)。
当他想要打开文件时,我开始一个与之前选择的文件一起使用的新活动。
ParseException:在第1行,第0列:格式不正确(无效令牌)
它就像XML文件是空的......但是,我知道我的path_dir是正确的,我的xml文件也在正确的地方
我也知道它的格式很好,因为我之前使用过它。 在以前版本的应用程序中,.xml和.wav是" in-app"所以我正在使用
file_source = new InputSource(getResources()。openRawResource(R.raw.xml));
使用原始资源正在运作。 但我试图将资源放在应用程序之外 我的XML文档不再被识别......
<?xml version="1.0" encoding="utf-8"?>
<text>
<lots of tag .../>
</text>
在xml中不是typpo ...有没有人有线索?
编辑:
file_source = new InputSource(new StringReader( path_dir + "/xml.xml" ));
file_source.setEncoding("UTF-8");
parser.parse(file_source);
似乎可以避免形成错误的异常......但应用程序&#39;在其他地方崩溃,我必须追踪到哪里......
答案 0 :(得分:1)
尝试记录您获得的输入流。
我不太了解InputSource,但我想,正确读取文件存在一些问题。
尝试使用此代替
FileInputStream fis = new FileInputStream(new File("path to file)); parser.parse(fis);
答案 1 :(得分:0)
将xml文件放在/assets
文件夹中,然后使用以下行:
parser.parse(new InputSource(getAssets().open("xml.xml")));
答案 2 :(得分:0)
res目录中的XML文件被“预编译”成二进制形式。
这就是你收到错误的原因
ParseException : At line 1, column0: not well-formed (invalid token)
按照其他人的建议将其移至资源目录中,您就可以按照自己的方式阅读。提示:资产文件夹“在应用程序外部”与res文件夹完全相同。 IE浏览器。完全没有。