代码之家  ›  专栏  ›  技术社区  ›  Paul J. Lucas

忽略“尾节中不允许内容”异常

  •  7
  • Paul J. Lucas  · 技术社区  · 16 年前

    我用的是Java的 DocumentBuilder.parse(InputStream) > SAXException: Content is not allowed in trailing section . (在我看到的例子中,垃圾只是一个或多个空字节。)

    我不在乎决赛后会发生什么 > . 有没有一种简单的方法可以在Java中解析整个XML文档并让它忽略任何后续垃圾?

    请注意,“ignore”并不仅仅意味着捕获并忽略异常:我的意思是忽略尾随的垃圾,不抛出异常,并返回 Document 对象从XML到包含最终 >

    2 回复  |  直到 16 年前
        1
  •  8
  •   Don Roby    16 年前

    由于发送者向您提供了无效的XML,因此如果您希望避免此异常,则需要在到达解析器之前对其进行更正。如果无法更正发件人,则需要某种预处理步骤。

    如果情况很简单,在结束标记之后有额外的空字节,由一个对另一个答案的响应来标识,那么通过将输入流包装到 FilterInputStream 实现跳过空字节。

    如果你用的是 ContentHandler 在这一点上,任何必须由解析器完成的事情都可能已经完成了!但这个解决方案似乎不适用于你的情况。

        2
  •  -5
  •   Brett Kail    16 年前

    不。包含尾随字符的文档不是XML文档。修复发送器。

    推荐文章
    Praxder  ·  SAX XMLParser不工作
    14 年前