Thread HTML::TreeBuilder- durch HTML tags interieren (5 answers)
Opened by iamlooking at 2015-02-17 09:14

clms
 2015-02-17 12:32
#179706 #179706
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Hallo,

erstmal: Dein Ansatz innerhalb der Foreach-Schleife funktioniert nicht, weil selbst wenn der erste Eintrag in der Content-List ein "plain text string" ist, können die nachfolgenden wieder HTML::Element sein.

HTML::TreeBuilder hält tatsächlich eine Methode bereit, die das Durchsuchen und -laufen des HTML-Baumes vereinfacht: $tree->look_down(...).
Die wird normalerweise zum Suchen verwendet, aber mit look_down(_tag => qr/./) kannst Du sie so einstellen, dass sie jedes Element im Baum findet.
Da sind dann aber noch nicht die reinen Text-Strings dabei. Willst Du die auch in Deiner Ergebnis-Liste haben, musst du sie vorher in HTML::Element umwandeln. Das geht mit $tree->objectify_text().


Wenn Dir look_down() nicht flexibel genug ist oder Dir die Reihenfolge nich passt, musst Du doch wieder auf einen selbstgeschriebene rekursive Funktion zurückgreifen, so wie es payx vorgeschlagen hat.

View full thread HTML::TreeBuilder- durch HTML tags interieren