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 :

[SimpleXML] et recherche d'un élément par son attribut


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 35
    Points
    35
    Par défaut [SimpleXML] et recherche d'un élément par son attribut
    Bonjour à tous!

    Me voilà confronté à un petit problème, voici la structure de mon fichier xml (en simplifié)

    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
    <materiel>
       <categorie nom="eclairage">
          <objet nom="par64" titre="Projecteur PAR de 1000W">
             <description>Lorem ipsum dolor sit amet</description>
          </objet>
          <objet nom="mandarine" titre="Projecteur mandarine de 800W">
             <description>Lorem ipsum dolor sit amet</description>
          </objet>
       </categorie>
       <categorie nom="son">
          <objet nom=.........>
          </objet>
          <objet nom=.........>
          </objet>
          <objet nom=.........>
          </objet>
       </categorie>
    </materiel>
    Donc voilà plus précisément mon problème j'aimerais sélectionner la balise ayant son attribut nom qui soit égal à "par64" par exemple.

    Du coup j'appelle ma page materiel_detail.php?nom=par64 avec ce code source dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $nom = $_GET['nom'];
    $categorie = $_GET['cat'];
    $xml = simplexml_load_file("materiel.xml");
    $objet = $xml->xpath("//objet[@nom='$nom']");?>
     
    <img src="<?php echo "page/association/materiel/$categorie/$nom.jpg"; ?>" />
            <h1><?php echo $objet['titre'];?></h1>
            <h2><?php echo $objet->chapo; ?></h2>
            <div class="desc"><p><?php echo str_replace("<br />","</p><p>",nl2br($objet->description)); ?></p></div>

    Le problème se situe dans les dernières lignes avec les 4 echos, je n'ai que des erreurs dessus du style : Notice: Undefined index: titre in /Users/Sylvain/Documents/PROJETS/KTarFilms.com/page/association/materiel_details.php on line 13

    Quelqu'un sait comment je pourrais m'en sortir?

    Merci par avance!!!

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 196
    Points : 8 411
    Points
    8 411
    Billets dans le blog
    17
    Par défaut
    La méthode SimpleXMLElement::xpath( ) retourne un tableau.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Oui exact Séb, je m'en suis rendu compte en faisant un print_r($objet)

    du coup, si d'autres ont le même problème il suffit de faire

    echo $objet[0]['titre'];


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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2013, 10h06
  2. Récupérer l'id d'un élément par son index
    Par Anaisg64 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/04/2012, 15h59
  3. Réponses: 5
    Dernier message: 13/04/2010, 13h57
  4. Réponses: 2
    Dernier message: 10/05/2004, 11h20

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