eine Frage an die Profis:wink: HTML ist ja letztendlich eine (XML) Sprache der eine DTD zugrunde liegt. (oder?).
ich muss mir leider was was ähnliches wie ein Browser basteln, der die HTML seiten verstehen kann: was steht z.b. in einem Paragraph Tag was in einem Tag usw…
Mein erster Ansatz war das mit Regular expressions zu machen. Aber bei jeder kleinsten HTML-Unreinheit fliegt das ganze buchstäblich in die Luft. (Falsch verschachtelte Tags…Dann kommt da nur noch Müll raus, auch wenn nur ein einziges Tag Falsch ist…)
Nachdem (X)HTML doch eine DTD zugrunde liegt müsste man das doch auch irgendwie auf XML Basis „parsen“ können. Leider bin ich da absoluter Laie.
Ich wäre super dankbar für irgendwelche Tips / Links die mich da weiterbringen, insbesondere in dieser HTML Geschichte, wie parse ich eine HTML Seite um an die __Inhalte__ ranzukommen?
Wer hat ähnliches schonmal gemacht, mit was muss ich da anfangen, welche Pakete etc gibt es dazu.
eine Frage an die Profis:wink: HTML ist ja letztendlich eine
(XML) Sprache der eine DTD zugrunde liegt. (oder?).
Nein, leider nicht. Deswegen gibt es diese Probleme bei der maschinellen Verarbeitung. HTML ist nicht mal well-formed XML (zB gibt es kein schließendes
Tag).
ich muss mir leider was was ähnliches wie ein Browser basteln,
der die HTML seiten verstehen kann: was steht z.b. in einem
Paragraph Tag was in einem Tag
usw…
Mein erster Ansatz war das mit Regular expressions zu machen.
Aber bei jeder kleinsten HTML-Unreinheit fliegt das ganze
buchstäblich in die Luft. (Falsch verschachtelte Tags…Dann
kommt da nur noch Müll raus, auch wenn nur ein einziges Tag
Falsch ist…)
Genau da liegt das ganze Problem. Die meisten HTML Seiten bestehen nur aus Fehlern, die (fast) jeden Parser aus dem Tritt bringen.
Nachdem (X)HTML doch eine DTD zugrunde liegt müsste man das
doch auch irgendwie auf XML Basis „parsen“ können. Leider bin
ich da absoluter Laie.
X(!)HTML ist da einfacher. XHTML ist well-formed und valid XML. Damit kannst du jeden XML Parser nehmen (zB. Xerces).
Ich wäre super dankbar für irgendwelche Tips / Links die mich
da weiterbringen, insbesondere in dieser HTML Geschichte, wie
parse ich eine HTML Seite um an die __Inhalte__ ranzukommen?
Wer hat ähnliches schonmal gemacht, mit was muss ich da
anfangen, welche Pakete etc gibt es dazu.
Hab mit eine ganze Weile damit beschäftigt. Es war ein Graus.
eine Frage an die Profis:wink: HTML ist ja letztendlich eine
(XML) Sprache der eine DTD zugrunde liegt. (oder?).
Nein, leider nicht. Deswegen gibt es diese Probleme bei der
maschinellen Verarbeitung. HTML ist nicht mal well-formed XML
(zB gibt es kein schließendes
Tag).
natürlich ist HTML eine XML Ausprägung, die Tags haben alle einen Abschluss, nur verwenden die meisten (faulen Säcke) diese Tags nicht.
hier stellt sich die Frage, ob Du die Quelle des HTML Codes kennst. Wenn Du genau weisst, dass der zu durchsuchende HTML Text immer aus der selben Quelle kommt (z. B. Frontpage), nur dann hast Du eine realistische Chance, an den Inhalt ran zu kommen. Das ist aber nur meine Meinung
Bei XML gibt es zwei Möglichkeiten. Entweder du liest einen DOM Baum ein, der dir ein fertiges Modell liefert (DOM Tree). Oder Du nimmst einen SAX Parser, der den XML Stream einliest und Dir Events liefert, wenn er auf Elemente und Attribute stösst.
Ich würde einen SAX Parser nehmen. (SAX steht für Simple API for XML).