Android SAXParser:没有格式良好的文档...... * do *格式正确

时间:2012-01-25 17:29:50

标签: android xml file saxparser

所以,我有一个启动器活动,用户选择一个文件(实际上是一个包含.xml和.wav的目录)。

当他想要打开文件时,我开始一个与之前选择的文件一起使用的新活动。

  • 将文件显示给用户
  • Launcher_Activity: onClick:     Other_Activity.path_dir = file.getAbsolutePath();     startActivity(Other_Activity_Intent);
  • 其他活动: file_source = new InputSource(new StringReader(path_dir +" /xml.xml")); parser.parse(file_source)
  

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;在其他地方崩溃,我必须追踪到哪里......

3 个答案:

答案 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浏览器。完全没有。