Обработка XML-комментариев с использованием SAX & Cyberneko - в DOM-порядке - PullRequest
0 голосов
/ 15 января 2011

Я использую cyberneko для очистки и обработки html-документов.

Мне нужно иметь возможность обрабатывать все комментарии, встречающиеся в исходных html-документах.

Я настроил парсер cyberneko sax для обработки комментариев следующим образом:

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

... используя того же потребителя, что и я для событий DOM.

Я получаю обратный вызов для каждогокомментариев:

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

У меня проблема в том, что все комментарии сначала обрабатываются вне контекста DOM.то есть я получаю обратный вызов для всех комментариев перед заголовком документа, телом и т. д. *

Мне бы хотелось, чтобы обратные вызовы комментариев происходили в порядке их появленияDOM.

Редактировать : что я на самом деле пытаюсь сделать, это пройти через инструкции для IE в оригинальном HTML, например:

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

Нав тот момент, когда они все отброшены, мне нужно включить их в очищенный HTML-документ.

1 Ответ

0 голосов
/ 15 января 2011

Вероятно, есть простое объяснение, которое было бы понятно, если бы вы показали нам больше своего кода.

Но если это проблема с Cybernecko, вы можете попробовать другой парсер, такой как TagSoup.

...