首页 文章

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

提问于
浏览
0

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

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

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

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

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

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

1 回答

  • 1

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

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

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

    在可用的功能中,有一个禁用命名空间,这就是技巧 .

    参考 - > LINK

相关问题