Bonjour à tous.
Je traite actuellement des (vieux) fichiers HTML "non conformes" aux standards. Je les nettoie avec tidy pour qu'il respecte la dtd transitional de XHTML. Seulement tidy ne nettoie pas tout, en particulier il laisse des balises NOSCRIPT imbriquées dans des SPAN, du coup les fichiers XHTML produits ne sont pas valides.
Je souhaite donc faire un prétraitement afin de supprimer ces balises NOSCRIPT, à savoir simplement supprimer ces balises et ce qu'elles contiennent, avant de fournir les fichiers à tidy. Pour l'instant, j'ai une solution provisoire qui ne me satisfait pas, avec sed :
s/<NOSCRIPT.*\/NOSCRIPT>//g |
La directive précédente permet de virer toutes les balises NOSCRIPT et ce qu'elles contiennent du fichier (je ne sais pas si ça marche sur plusieurs lignes ou si c'est réduit à une seule ligne), même celles qui sont valides, c'est-à-dire pas forcément dans la portée d'un SPAN.
En résumé, de ça :
un peu de texte <SPAN> différentes balises dont <NOSCRIPT> du blabla </NOSCRIPT> encore un peu de choses ici </SPAN> et là ou là <NOSCRIPT> ça on peut garder </NOSCRIPT> c'est pas imbriqué |
je veux obtenir ça :
un peu de texte <SPAN> différentes balises dont encore un peu de choses ici </SPAN> et là ou là <NOSCRIPT> ça on peut garder </NOSCRIPT> c'est pas imbriqué |
Je ne sais pas si c'est faisable avec sed (je lis partout que c'est puissant, l'occasion de le prouver ), mais ça m'arrangerait vu que j'intègre ce prétraitement avec d'autre commandes sed dans un fichier de directives.
Merci de votre aide.
Bon dimanche.
Message édité par Jeddo le 18-05-2008 à 12:18:08
---------------
FREE DATOUNE