【发布时间】: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 文档中。
【问题讨论】: