Frage

Ich bin mit cyberneko zu reinigen und zu verarbeiten HTML-Dokumente.

Ich muss in der Lage, alle Kommentare zu verarbeiten, die in den ursprünglichen HTML-Dokumenten auftreten.

Ich habe den cyberneko SAX-Parser zu verarbeiten Kommentare konfiguriert wie folgt:

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

... mit dem gleichen Verbraucher, wie ich für DOM-Ereignisse bin.

ich für jeden der Kommentare einen Rückruf erhalten:

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

Das Problem, das ich habe ist, dass alle Kommentare zuerst verarbeitet werden, , aus dem Zusammenhang des DOM. das heißt erhalte ich einen Rückruf für alle Kommentare vor dem Dokument Kopf, Körper usw. ....

Was würde Ich mag für die Kommentar-Rückrufe in der Reihenfolge, wie sie in dem DOM auftreten auftreten.

Bearbeiten : was ich versuche tatsächlich ist in der ursprünglichen HTML durch Anweisungen für IE Pass zu tun, wie zum Beispiel:

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

Im Moment sie alle fallen gelassen werden, muss ich sie in den gereinigten HTML-Dokument enthalten.

War es hilfreich?

Lösung

Es ist wahrscheinlich eine einfache Erklärung, die klar sein würde, wenn Sie zeigt uns, mehr von Ihrem Code.

Aber wenn es ein Problem mit cybernecko ist, könnten Sie einen anderen Parser versuchen, wie tagsoup.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top