Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

=?ISO-8859-1?Q?Consid=E9rer__comme_une_ligne_??=

3 réponses
Avatar
ctobini
Bonjour,

J'ai un fichier HTML dont je voudrais extraire des infos.

Ex:
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>
=2E..
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>

Je voudrais faire consid=E9rer =E0 Perl que <TR></TR> est une ligne pour
ensuite avec un regex extraire les diff=E9rents textes.

Sauriez-vous comment faire ceci ?

En vous remerciant,

C. Tobini

3 réponses

Avatar
Vincent Lefevre
Dans l'article ,
ctobini écrit:

Je voudrais faire considérer à Perl que <TR></TR> est une ligne pour
ensuite avec un regex extraire les différents textes.


man perlre

Utiliser par exemple le modifieur s:

s Treat string as single line. That is, change "." to match any
character whatsoever, even a newline, which normally it would not
match.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Avatar
mirod
ctobini wrote:
Bonjour,

J'ai un fichier HTML dont je voudrais extraire des infos.

Ex:
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>
...
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>

Je voudrais faire considérer à Perl que <TR></TR> est une ligne pour
ensuite avec un regex extraire les différents textes.


Euh... ya pas de TR dans ton fichier (s/BR/TR/ ?)

Sinon un petit HTML::TreeBuilder ou HTML::Parser ou un truc du genre
sera certainement plus robuste que d'utiliser des regexps, le HTML ça
peut être très, _très_ compliqué à parser.

et bieng sûr, si tu as XML::Twig et HTML::TreeBuilder installés, un petit

xml_grep --html -t td test_html.html

te donnera ce que tu cherches (avec quelques sauts de lignes superflus
que tu filtreras habilement grâce à:

xml_grep --html -t td test_html.html | grep -v '^$'

--
mirod

Avatar
ctobini
Bonjour à tous et merci de vos réponses,

J'ai utilisé le module HTML::TagReader qui a fonctionné parfaitement.

Bonne soirée,

C. Tobini

On 27 nov, 12:40, mirod wrote:
ctobini wrote:
Bonjour,

J'ai un fichier HTML dont je voudrais extraire des infos.

Ex:
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>
...
<BR> texte
<TD> texte
</TD>
<TD> texte
<TD>
</BR>

Je voudrais faire considérer à Perl que <TR></TR> est une ligne pour
ensuite avec un regex extraire les différents textes.


Euh... ya pas de TR dans ton fichier (s/BR/TR/ ?)

Sinon un petit HTML::TreeBuilder ou HTML::Parser ou un truc du genre
sera certainement plus robuste que d'utiliser des regexps, le HTML ça
peut être très, _très_ compliqué à parser.

et bieng sûr, si tu as XML::Twig et HTML::TreeBuilder installés, un pe tit

xml_grep --html -t td test_html.html

te donnera ce que tu cherches (avec quelques sauts de lignes superflus
que tu filtreras habilement grâce à:

xml_grep --html -t td test_html.html | grep -v '^$'

--
mirod