Hallo Michael,
Die Kontainer mit der Klasse "foobar" sollen also Komplett eingelesen, der Rest ignoriert werden.
Mir fehlt der richtige Ansatz wie ich das lösen kann.
wenn Du selbst über die Ressource des zu parsenden HTMLs verfügst, kannst Du Dich zwar darauf verlassen, dass <!-- infos -->
als Beginn des gewünschten Blocks notiert ist.
Meine spontane Idee war erstmal alles vor dem ersten <!-- infos --> zu entfernen und danach einfach mit explode() den String zu zerteilen.
Als Trennzeichen bietet sich dabei das <!-- infos --> an weil es immer vor dem Element steht das ich haben will.
Dabei werde ich aber auf Probleme mit dem letzten Element stoßen solange ich den String nicht nach dem schließenden </div> abschneide.
Genau; was willst Du als Abschluss heranziehen? </div>
wird bei verschachtelten Strukturen mehrerer <div>
-Elemente zu Fehlern führen. Also bliebe Dir nur übrig, ein eindeutiges Blockende ebenso zu notieren (vielleicht <!-- ende -->
).
Klingt meine Idee gut? Wie sollte ich es stattdessen sonst lösen?
Da dies aber der Praxis nicht entspricht und auch ein herumfriemeln mit eigenen rekursiven Funktion schnell unübersichtlich und überproportional wird, würde ich Dir zum erheblich schwererem Geschütz raten, was alles schon inklusive kann: Nutze DOM!
Gruß aus Berlin!
eddi
Wenn der Weg zur Hölle mit guten Vorsätzen gepflastert ist, wäre der zum Himmel aus bösen Absichten betoniert. Was aber ist dann ein Weg voller Irrtümer?
Wer weiß - vielleicht der Mittelweg. ;)