IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Petit Problème d'une balise ancrée dans une autre


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut Petit Problème d'une balise ancrée dans une autre
    Bonjour à tous,

    Juste un petit problème dans le parsage d'une page web (html)
    Voici mes balises et le texte que je voudrais récupérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <td class="relatedObjCol">
     
     
     
     
    <a href="/do/serve?objId=PA446155&objCls=Disease"
    >Precursor Cell Lymphoblastic Leukemia-Lymphoma</a></td>
    Je voudrais que mon programme réconnaisse ces 2 balises pour récupérer le texte : Precursor Cell Lymphoblastic Leukemia-Lymphoma

    Je ne vois pas comment faire avec des boucles if...car rien ne s'affiche
    Une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ($tag =~ /^td$/ 
    				and defined $attr->{class}
    				and $attr->{class} =~ /^relatedObjCol$/){
    					if ($tag =~ /^a$/ 
    						and defined $attr->{href}  
     						and $attr->{href} =~ /^\/do\/serve\?objId=PA[0-9]+&objCls=Disease$/){    	
     							$flag = 4;
    					}
    			}
    Merci pour vos commentaires

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je pense que tu es en train d'utiliser HTML::Parser, non ?
    Dans ce cas ce que tu fais ne va pas marcher, le callback n'est appelé qu'une seule fois pas ouverture de balise.
    Ce que tu dois faire c'est quand tu rentres dans un < td > de la bonne classe modifier l'état d'une variable lexicale (déclarée avant le callback) et quand tu en sors la remettre à une valeur fausse.
    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    my $in_good_td = 0;
     
    sub start_callback {
      if ($tag =~ /^td$/ 
          and defined $attr->{class}
          and $attr->{class} =~ /^relatedObjCol$/){
        $in_good_td++;
      }
      elsif ($in_good_td 
             and $tag =~ /^a$/ 
             and defined $attr->{href}  
             and $attr->{href} =~ /^\/do\/serve\?objId=PA[0-9]+&objCls=Disease$/){    	
        $flag = 4;
      }
    }
    Et n'oublie pas de décrémenter $in_good_td dans le callback pour end.

    --
    Jedaï

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup Jedai,

    Ton raisonnement fonctionne très bien dans mon programme. De plus j'ai du créer 3 variables, car j'avais trois fois ce même problème

    (Je les ai appelées :
    $in_good_td_gene ;
    $in_good_td_disease;
    $in_good_td_drug;
    )

    Cela fait donc 3 blocs if...elsif dans ma subroutine de départ, et j'ai bien décrémenté ces variables dans la subroutine de fin.

    Encore Merci
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insérer un forum dans une page css dans une balise div
    Par scoubi77 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/07/2012, 21h31
  2. [XSLT]problème d'appel de texte dans une balise à partir d'un attribut
    Par docteur chépère dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/01/2007, 10h57
  3. [XSLT] Comment inclure une balise xsl dans une balise html
    Par sylsau dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 13/10/2006, 09h33
  4. Réponses: 4
    Dernier message: 16/05/2006, 23h15
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo