Thread HTML::TreeBuilder- durch HTML tags interieren
(5 answers)
Opened by iamlooking at 2015-02-17 09:14
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. |