faire du jquery en perl...
Le
luc2
ha ha, j'vous ai bien eu ! non, je ne cherche pas a faire du jquery en perl !
bonjour, vous allez bien ? il fait pas trop chaud chez vous ? tant mieux !
voici ma question :
my $document_html = '<html><head></head><body><div class="content">bonjour</div>
</body></html>';
my $message = get_html( '.content', $document_html );
print "$message"; # j'aimerais que ca affiche "bonjour"
n'y aurait-il pas une librairie pour me permettre d'avoir une fonction comme ce
get_html() ? ou pour recuperer le contenu de cette balise sans trop me fatiguer
? il y a une tonne de facons de faire, mais je voudrais privilegier le fait de
faire le moins d'effort possible, et le fait de le faire proprement.
bonjour, vous allez bien ? il fait pas trop chaud chez vous ? tant mieux !
voici ma question :
my $document_html = '<html><head></head><body><div class="content">bonjour</div>
</body></html>';
my $message = get_html( '.content', $document_html );
print "$message"; # j'aimerais que ca affiche "bonjour"
n'y aurait-il pas une librairie pour me permettre d'avoir une fonction comme ce
get_html() ? ou pour recuperer le contenu de cette balise sans trop me fatiguer
? il y a une tonne de facons de faire, mais je voudrais privilegier le fait de
faire le moins d'effort possible, et le fait de le faire proprement.

Poser une question


luc2
Un parser HTML fera l'affaire : HTML::Parser ou XML::Twig, par exemple...
--
Paul Gaborit - Perl en français -
On peut utiliser HTML::TokeParser par exemple:
#!/usr/bin/perl
use strict;
use warnings;
use HTML::TokeParser;
my $document_html = '<html><head></head><body>
<div class="content">bonjour</div></body></html>';
sub get_html {
my ($class, $html) = @_;
my $p = HTML::TokeParser->new($html);
if (my $tag = $p->get_tag('div')) {
if ($tag->[1]->{class} eq $class) {
return $p->get_text;
}
}
}
my $message = get_html( 'content', $document_html );
print "$messagen";
__END__
C'est juste un exemple à adapter. On prend la première balise <div>
et on suppose qu'elle à l'attribut 'class' défini... etc
HTH
--
J-L
http://www.bribes.org/perl/
Si l'idée est juste de récupérer le texte entre les balises, le plus simple est d'utiliser une bête expression rationnelle du type :
my ($message) = $document_html =~ />([^s<>]+)</;
--
Denis Dordoigne
Membre de l'April - promouvoir et défendre le logiciel libre - april.org
Rejoignez maintenant plus de 5 000 personnes, associations,
entreprises et collectivités qui soutiennent notre action
Sans jamais oublier qu'on ne peut pas analyser un langage à balises
correctement avec des regexps, n'est ce pas? n'est ce pas?
Voir la "légendaire" première réponse :
xhtml-self-contained-tags>
--
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore, all
progress depends on the unreasonable man.
George Bernard Shaw
Oui mais l'OP parle apparemment de récupérer le contenu d'un div précis,
auquel cas il ne peut pas couper à une analyse du HTML correcte s'il veut
un résultat fiable.
--
"Dope will get you through times of no money better
than money will get you through times of no dope."
Freewheelin' Franklin.