XML sax解析器 - 忽略未绑定的前缀异常

时间:2012-04-05 13:07:56

标签: android xml sax

在android中解析xml文件时,我这样做:

try
{
    InputStream is = ...
    MyContentHandler ch = new MyContentHandler();
    Xml.parse(is, Encoding.UTF_8, ch);
}
catch ...

问题在于,有时我试图解析的文件格式不正确。 就我而言,可能存在未声明的命名空间。

我感兴趣的数据不在那些标签中,所以我可以简单地忽略它,但是我得到了一个未绑定的前缀的例外,不在内容处理程序内但在解析器本身;这意味着如果发生异常,整个解析过程就会中断。

有没有办法使用sax解析器忽略这种错误(或名称空间)?

P.S。我想避免将所有文件作为字符串加载到内存中,并从中删除名称空间,或者不得不重写文件。

1 个答案:

答案 0 :(得分:1)

我在另一个帖子中找到了解决方案。

您需要通过SAXParserFactory手动实例化sax解析器并获取读者,而不是使用Xml.parse。

然后,您可以设置阅读器功能。

在可用的功能中,有一个会禁用名称空间,这就可以了。

参考 - > LINK