Thread HTML-Seite parsen (14 answers)
Opened by pktm at 2009-10-12 12:21

topeg
 2009-10-12 15:50
#126903 #126903
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Quote
Nur zum Auslesen muss ein Parser nicht schauen ob das Dokument auch Valide ist. Sprich ob Tags korrekt verschachtelt sind wie erlaubt etc. Sowas kann man zum auslesen auch ignorieren da man ja nicht die Validität überprüfen will.

Es geht nicht um das validieren. HTML hat keine eindeutige Kennzeichnung von Elementpaaren und Einzelelementen. Bei XML-Tags kann man anhand der Struktur erkennen ob es Paare sind oder ob sie einzeln stehen.
Bei HTML-Tags kann das der Parser nur wissen, wenn man weiß was für Tags es sind. Wenn man auf ein "li"-Tag stößt so kann er, ohne zu wissen was "li" ist, nicht entscheiden, ob die Nachfolgenden Daten zum "li" gehört und wo der Block endet, der zu "li" gehören könnte.

Sicher will man "einfach" Tags vom Text trennen, braucht man über die Art der Tags nichts zu wissen, will man aber die Daten strukturiert auslesen, so muss der Parser wenigstens rudimentär wissen, welche Tags Elementpaare und welche Einzelelemente sind.
Um nochmal zu "li" zurück zu kommen. Der zu "li" gehörenden Block endet am schließenden "/li" oder beim nächsten "li" oder abschließenden "/ul", "/dl" oder "/ol" sofern vorher nicht ein "ul", "dl" oder "ol" kam. Woher soll der Parser das wissen, wenn er nicht den Tag "li" als solches erkennt. Taucht ein "img" Tag auf, so ist nicht entscheidbar, ohne zu wissen um was es sich handelt, ob die nachfolgenden Daten dazu gehören oder nicht.

View full thread HTML-Seite parsen