extraire plusieurs valeurs
Le
kurtz le pirate

bonjour,
je ne sais pas par ou prendre ce problème. j'ai du texte dans $texte. je
veux extraire ce qui existe entre <td class="colname">XXXXXXX</td> et
entre <span class="colrgb">YYYYYYY</span>. ces deux valeurs étant liées.
si je fais :
while ($texte=~ m!<td class="colname">(.*?)</td>!g) {
print "$1";
}
je trouve bien tout les "colname", mais je ne sais pas ou mettre le
deuxième m!! "colorrgb".
merci pour votre éclairage :))
--
klp
je ne sais pas par ou prendre ce problème. j'ai du texte dans $texte. je
veux extraire ce qui existe entre <td class="colname">XXXXXXX</td> et
entre <span class="colrgb">YYYYYYY</span>. ces deux valeurs étant liées.
si je fais :
while ($texte=~ m!<td class="colname">(.*?)</td>!g) {
print "$1";
}
je trouve bien tout les "colname", mais je ne sais pas ou mettre le
deuxième m!! "colorrgb".
merci pour votre éclairage :))
--
klp
Je n'ai pas très bien compris la structure des données en entrée, mais je
pense que tu ferais mieux d'utiliser un parser HTML ou XML.
*** les données ont cette forme (dans un doc html) :
...
<tr><td><div class="colsmp" style="background-color:#E67E30"><a
title="Afficher l'Èchantillon"
href="javascript:dspSample('#E67E30')"><img
src="img/s.gif"/></a></div></td><td
class="colname">abricot</td><td><span class="inv">(inv)</span> Orange
rosÈ doux.</td><td><span class="colrgb">E67E30</span></td></tr>
...
*** le but :
recupéré le couple nom/valeur -> abricot/E67E30
*** html::parser :
pas compris comment faire reconnaître les class="..."
en fait je ne suis débrouillé autrement. merci quand même :)
--
klp
Avec une API de type DOM, ça se fait avec une méthode getAttribute. Avec une
API de type SAX (un peu plus lourd à utiliser en pratique, mais seule
utilisable sur des documents énormes), c'est passé en argument au
gestionnaire de tag ouvrant.