problem mit HTML::TokeParser get_trimmed_text

01/07/2009 - 16:05 von Gerhard Wolf | Report spam
Hallo,
ich versuche gerade mit HTML::TokeParser eine HTML zu verarbeiten.
Die Zeile "my $descr = $dtoken->get_trimmed_text("/p");" liefert bei mir
den Fehler:
Can't call method "get_trimmed_text" on unblessed reference at ...pl line xx
die Zeile auskommentiert, funktioniert problemlos. D.h.
my $text = $p->get_trimmed_text("/a"); funktioniert.

Warum der Fehler? wie bekomme ich den Inhalt des bzw. der folgenden <p>-Tags

my $p = HTML::TokeParser->new( \$html );

while ( my $token = $p->get_tag("a") ) {
my $url = $token->[1]{href} || "-";
if ( $url =~ /mp3$/ ) {
my $text = $p->get_trimmed_text("/a");
print "$url\t$text";

my $dtoken = $p->get_tag("p");
my $descr = $dtoken->get_trimmed_text("/p");
}
}
...
...
<div class="suchergebnis">
<h2><a
href="http://ondemand-mp3.dradio.de/file/....mp3"
title="Henzes "LUpupa" in Dresden" class="link_aod"><span class="text-bl
text-bl_dlf"><span class="color_dlf">23.&nbsp;Henzes "LUpupa" in
Dresden</span></span></a></h2>
<p>Sendezeit: 02.06.2009 17:36</p>
<p>Autor: Kühn, Georg-F.</p>
<p>Programm: Deutschlandfunk</p>
<p>Sendung: <span class="color_dlf"><strong>Kultur
heute</strong></span></p>
<p>Lànge: 04:28 Minuten</p>

<p>Text zum Beitrag: <a
href="http://www.dradio.de/dlf/sendungen/...450/"
class="link_arrow_left" title="verlinkten Beitrag aufrufen">Ein Mix aus
Tausendundeine Nacht und Zauberflöte</a></p>

</div>
...
 

Lesen sie die antworten

#1 ReneeB
01/07/2009 - 16:50 | Warnen spam
On 1 Jul., 16:05, Gerhard Wolf wrote:
Hallo,
ich versuche gerade mit HTML::TokeParser eine HTML zu verarbeiten.
Die Zeile "my $descr = $dtoken->get_trimmed_text("/p");" liefert bei mir
den Fehler:
Can't call method "get_trimmed_text" on unblessed reference at ...pl line xx
die Zeile auskommentiert, funktioniert problemlos. D.h.
my $text = $p->get_trimmed_text("/a"); funktioniert.

Warum der Fehler? wie bekomme ich den Inhalt des bzw. der folgenden <p>-Tags



get_tag liefert kein Objekt zurück, sondern eine Arrayreferenz.
Deswegen kannst Du darauf auch kein get_trimmed_text aufrufen. Du
solltest Dir stattdessen mal get_token (statt get_tag) anschauen.

Ähnliche fragen