【问题标题】:Processing XML comments using SAX & Cyberneko - in DOM order使用 SAX 和 Cyber​​neko 处理 XML 注释 - 以 DOM 顺序
【发布时间】:2011-01-15 13:28:51
【问题描述】:

我正在使用cyberneko 清理和处理 html 文档。

我需要能够处理原始 html 文档中出现的所有 cmets。

我已将cyberneko sax 解析器配置为像这样处理cmets:

parser.setProperty("http://xml.org/sax/properties/lexical-handler", consumer);

...使用与我相同的消费者来处理 DOM 事件。

我收到每个 cmets 的回调:

 @Override
 public void comment(char[] arg0, int arg1, int arg2) throws SAXException {
  System.out.println("COMMENT::: "+new String(arg0, arg1, arg2));
 }

我遇到的问题是 首先处理所有 cmets,而不是 DOM 的上下文。即,我在文档头部、正文等之前收到所有 cmets 的回调......

我希望评论回调按照它们在 DOM 中出现的顺序发生。

编辑:我实际上要做的是通过原始html中的IE指令,例如:

 <!--[if lte IE 6]><body class="news ie"><![endif]-->

在它们都被删除的那一刻,我需要将它们包含在清理后的 HTML 文档中。

【问题讨论】:

    标签: xml sax cyberneko


    【解决方案1】:

    如果您向我们展示更多代码,可能会有一个简单的解释。

    但如果是cybernecko的问题,您可以尝试其他解析器,例如TagSoup。

    【讨论】:

    • 问题是我将所有内容都包装在一个没有输出 cmets 的 XSL 中。
    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2016-02-20
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多