0

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

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

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

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

有没有一种方法可以使用 sax 解析器忽略这种错误(或完全没有命名空间)?

ps 我想避免将内存中的所有文件作为字符串加载并从中剥离名称空间,或者必须重写文件。

4

1 回答 1

1

我在另一个线程中找到了解决方案。

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

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

在可用的功能中,一个禁用命名空间就可以了。

参考 ->链接

于 2012-04-05T21:14:57.743 回答