【问题标题】:how to surpasss certain pattern with out reading it from BufferedInputstream如何在不从 BufferedInputstream 读取的情况下超越某些模式
【发布时间】:2015-10-29 18:14:52
【问题描述】:

如何在不阅读的情况下超越某些模式?我有

所以使用 SAX 解析器抛出“不允许匹配“[xX][mM][lL]”的处理指令目标。”如何跳过下一个 xml 模式(mark()、reset())并在之后移动当前位置?``

【问题讨论】:

    标签: java regex xml pattern-matching sax


    【解决方案1】:

    您只能使用 SAX 解析器来读取 XML,而您收到的错误消息表明 您的数据不是 XML。具体来说,XML may only have at most one XML declaration (<?xml ... ?>), and it may only appear at the top of the file.

    之前您可以通过 SAX 读取此数据,您必须通过使用 XML 声明修复此问题来修复它。您可以在文本编辑器中手动执行此操作,也可以通过将文件读取为 text 以编程方式执行此操作,而不是通过 SAX 将其解析为 XML,因为它不是 XML。

    有关如何消除诸如此类的 XML 声明问题的更多详细信息,请参阅针对此 Stack Overflow 问题给出的综合答案:

    【讨论】:

    • 感谢您的回复,我将xml文档连接到一个文件中并想使用sax,因为它是一个非常大的文件,根元素结束后意味着深度0,我们可以通过标记继续阅读和加工 xml 模式?并做些什么来跳过?感谢这种要求我无法改变所以试图找到一个解决方案..谢谢
    • 连接的 XML 文件不会形成新的 XML 文件。 SAX 仅适用于 XML。首先将文件预处理为 text。在将数据转换为真正的 XML 之前忘记 SAX:只有一个根元素;零个或一个 XML 声明(仅在最顶部);成为well-formed 的所有要求。
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 2012-04-01
    • 2016-12-19
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多