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

Bibliothèques et frameworks PHP Discussion :

[DOM XML] Value du premier <a>


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Points : 761
    Points
    761
    Par défaut [DOM XML] Value du premier <a>
    Bonjour, je souhaiterai récupérer la valeur du premier lien comme je le présente ci-dessous.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html>
    <body>
       <table>
       <tr><td>
            <div id="zhf">
               <a href="lien1">lien1</a>
               <a href="lien2">lien2</a<
            </div>
       </td></tr>
      </table>
    </body>
    </html>
    Avec cette structure je suis actuellement à ce point,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($page_cible->getElementsByTagName('div') as $div){
    	if($div->getAttribute('id') == 'zhf'){
    		$premier_lien = trim($div->getElementsByTagName('a')->item(0)->nodeValue);
    		var_dump($premier_lien);
    				}

    Helas je ne parviens pas à récupérer le premier lien, sauriez vous m'indiquer une piste d'ou peut venir mon soucis ?

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    recherche avec xpath c'est fait pour ça : c'est le SQL du xml
    $moi= ( !== ) ? : ;

  3. #3
    Membre éclairé Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Points : 761
    Points
    761
    Par défaut
    Je souhaiterai comprendre ce fonctionnement

    Cela dit je vais regarder ta proposition ce que je peux en tirer

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    je ne parviens pas à récupérer le premier lien, sauriez vous m'indiquer une piste d'ou peut venir mon soucis ?
    La raison est simple: le document n'est pas bien formé.
    <a href="lien2">lien2</a<
    Regardez-la bien.

    Pour vous assurer le plus tôt possible que le chargement a échoué, vous pouvez toujours contrôler le retour de la ligne "load", comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //$xmlfile le fichier xml
    $bret=$page_cible->load($xmlfile)
    if ($bret) {
        //etc etc...
    } else {
        echo "Le chargement a échoué.\n";
    }

  5. #5
    Membre éclairé Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Points : 761
    Points
    761
    Par défaut
    Citation Envoyé par tsuji Voir le message
    La raison est simple: le document n'est pas bien formé.

    Regardez-la bien.

    Pour vous assurer le plus tôt possible que le chargement a échoué, vous pouvez toujours contrôler le retour de la ligne "load", comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //$xmlfile le fichier xml
    $bret=$page_cible->load($xmlfile)
    if ($bret) {
        //etc etc...
    } else {
        echo "Le chargement a échoué.\n";
    }
    je te remercie pour ta réponse, c'est bien une erreur de ma part dans le creation de l'exemple
    Je ne peux plus éditer mon POST mais je cherche via cette exemple à comprendre la syntaxe de selection d'un élément

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Ton exemple avec xpath :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $xml='<html>
    <body>
       <table>
       <tr><td>
            <div id="zhf">
               <a href="http://lien1">lien1</a>
               <a href="http://lien2">lien2</a>
            </div>
       </td></tr>
      </table>
    </body>
    </html>';
    $page_cible = new DOMDocument();
    $x = $page_cible->loadHTML($xml);
     
    $xpath = new DOMXpath($page_cible);
     
    $element = $xpath->query('//a[2]')->item(0);           // 2eme lien
    $elements = $xpath->query('//a');                            // tous liens
    $element = $xpath->query('//div[@id="zhf"]/a[1]')->item(0); // 1er lien dans zhf
     
    $element=simplexml_import_dom($element);
    echo '<pre>'.	'attribut href: '.$element['href']."\n".
    	' valeur : '.(String)$element.' </pre>';
    $moi= ( !== ) ? : ;

  7. #7
    Membre éclairé Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Points : 761
    Points
    761
    Par défaut
    Merci bien pour ton exemple

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

Discussions similaires

  1. [DOM] innerHTML value input firefox
    Par Teufboy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/08/2007, 10h07
  2. [DOM] DOM xml firefox et ie
    Par topolino dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 11/01/2006, 22h12
  3. [DOM + XML] Lire la structure d'un objet responseXML
    Par zefrit dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/09/2005, 08h35

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