OVH Cloud OVH Cloud

Problème avec une regexp

4 réponses
Avatar
Arno
Salut,

Je me suis fait quelques regexp qui me convertissent un page HTML en texte
brut. Seulement j'ai un petit problème :

En HTML, les saut à la ligne (\n) ne sont pas prit en compte ce sont les
<br> ou les <p> qui permettent de faire cella. Ma première regexp est donc
de remplecer tout les \r\n et \ par un espace. Cependant je vient de me
rendre compte qu'il y a une balise que j'ai oublie : <pre>...</pre>. Dans
cette balise les \n sont tres importants.

Je veut donc remplacer ma regexp : $Data =~ s/(\r)?\n/ /sgi; par une regexp
qui fait la même chose en dehors des balises <pre> et </pre>.

Si quelqu'un pouvoit m'aider sur ce coup à. D'ailleur je me demande si il
n'existe pas une class ou autre qui permettrait de faire la convertion
HTML -> Texte brut en Perl ?

Merci

--
Arno

4 réponses

Avatar
Denis -esp2008-
Bonjour

n'existe pas une class ou autre qui permettrait de faire la convertion
HTML -> Texte brut en Perl ?
HTML::Formatter


source: http://search.cpan.org/modlist/World_Wide_Web/HTML

Avatar
Arno
"Denis -esp2008-" a écrit dans le message de
news:
Bonjour

n'existe pas une class ou autre qui permettrait de faire la convertion
HTML -> Texte brut en Perl ?
HTML::Formatter


source: http://search.cpan.org/modlist/World_Wide_Web/HTML



J'ai un petit problème lors de l'installation. Pour installer ce package
(HTML::Formatter) j'ai besoin du package HTML::Tree.

Le package HTML::Tree requière les package HTML::Tagset et HTML::Parser.

J'ai donc instaler HTML-Tagset-3.03 et HTML-Parser-3.31 sans aucun problème.
Par contre lorsque je fait un make test lors de l'install de HTML-Tree-3.17,
j'obtient le message d'erreur suivant :

PERL_DL_NONLAZY=1 /usr/bin/perl5.8.0 "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/building.....ok
t/clonei.......ok
t/oldparse.....ok
t/parse........ok
t/parsefile....FAILED test 1
Failed 1/1 tests, 0.00% okay
t/split........ok
Failed Test Stat Wstat Total Fail Failed List of Failed
---------------------------------------------------------------------------
t/parsefile.t 1 1 100.00% 1
Failed 1/6 test scripts, 83.33% okay. 1/212 subtests failed, 99.53% okay.
make: *** [test_dynamic] Error 29


Dans la doc de HTML::Tree on peut voir :
'HTML::Parser' => 2.19, # at LEAST!
'HTML::Tagset' => 3.02,

Je me demande si il n'y a pas un problème de compatibilié entre
HTML-Tree-3.17 et HTML-Parser-3.31 du à une version trop récente de
HTML-Parser. Cependant on peut voir que la première version estampiller 3.*
de HTML-Parser date de Mars 2002 et HTML-Tree-3.17 date de Novembre 2002.


Si quelqu'un a déjà eu ce problème.


Avatar
Arno
"Denis -esp2008-" a écrit dans le message de
news:
Bonjour

n'existe pas une class ou autre qui permettrait de faire la convertion
HTML -> Texte brut en Perl ?
HTML::Formatter


source: http://search.cpan.org/modlist/World_Wide_Web/HTML



Je vient de l'installer et de le tester. Il ne fait pas ce que je veut car
il ne prend pas en compte les retour à la lligne du genre <br> et
<p>...</p>. Il met le contenu du texte sur la même ligne.

Merci quand même.


Avatar
dominix
On Sun, 07 Sep 2003 09:25:16 +0200, Arno wrote:

Salut,

Je me suis fait quelques regexp qui me convertissent un page HTML en texte
brut. Seulement j'ai un petit problème :

En HTML, les saut à la ligne (n) ne sont pas prit en compte ce sont les
<br> ou les <p> qui permettent de faire cella. Ma première regexp est donc
de remplecer tout les rn et par un espace. Cependant je vient de me
rendre compte qu'il y a une balise que j'ai oublie : <pre>...</pre>. Dans
cette balise les n sont tres importants.

Je veut donc remplacer ma regexp : $Data =~ s/(r)?n/ /sgi; par une regexp
qui fait la même chose en dehors des balises <pre> et </pre>.

Si quelqu'un pouvoit m'aider sur ce coup à. D'ailleur je me demande si il
n'existe pas une class ou autre qui permettrait de faire la convertion
HTML -> Texte brut en Perl ?

Merci


on peux le faire en moins de 80 cols ... ;-)

perl -MHTML::Parse -MLWP::Simple -MHTML::FormatText
-e 'print HTML::FormatText->new->format
(parse_html(get("http://localhost")))'

--
dominix