Christoph Zurnieden: HTML Scanner

Beitrag lesen

Hi,

  1. Zuerst löscht du alles was zwischen <head>...</head> und </head>...</body> drin ist, damit wären alle Skripts und Stylesheets entfernt, denn die befinden sich (fast!) immer im <head> oder zwischen </head> und <body>.

Was ist eigentlich mit dem Problem, das je nach Spezifikation nicht unbedingt ein HEAD-Element vorhanden sein muß? Oder ein BODY-Element? Oder gar das HTML-Rootelement? Sie können auch nur teilweise vorhanden sein. Das hier ist z.B. valides HTML-4.01-transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
Hello World

Es braucht nicht viel, was? ;-)

(Etwas unsicher bin ich darüber, ob es nicht zumindest ein einleitendes <html> benötigt)

Es kann aber vorkommen, dass eben < > als Text vorkommt und nicht als Entity geschrieben wurde. Deshalb sollten es schon valide HTML-Seiten sein, die du Scannen willst.

Das '>' ist hier schon evt zuviel, muß je nach Standard nicht als Entity geschrieben werden.

Ein Problem gäbe es aber noch: Entities! Zum Schluss wirst du (bei validen Seiten) kein ä, ö, ü oder ß sehen, sondern &auml;, &ouml;, &uuml; und &szlig;. Ob du das willst, bleibt dir überlassen. Es gibt hunderte solcher Entities, und wenn du sie alle deinem JAVA-Programm einprogrammieren willst, dann mach das, aber es wird eine Riesenarbeit.

Die benamsten lassen sich aus der DTD ziehen, ist kein Problem und die restlichen per Algorithmus umsetzen. Das sind ein paar Zeilen Perl und noch ein paar Zeilen Java für den Algorithmus.

so short

Christoph Zurnieden