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] Pointer un attribut


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 72
    Par défaut [SimpleXML] Pointer un attribut
    Bonjour,

    Est'il possible avec SimpleXML de PHP5 de récupérer directement un attribue dans un noeud xml ? (sans faire une boucle pour récupérer les noms, et valeurs de l'attribue )

    Exemple: j'ai le XML suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="utf-8"?>
    <formulaire version="1">
        <text name="login" label="Login:" />
        <password name="password" label="Mot de passe:" />
        <hidden name="id243" />
        <textarea rows="5" cols="40" label="Commentaires:" />
        <checkbox name="option" value="1" checked="yes" label="M'alerter quand il y a aura un nouveau commentaire." />
        <submit value="Valider" />
    </formulaire>
    dans cet exemple, comment récupérer: name="login" ?

    mon code PHP qui permet de parsé le XML

    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
    <?php
    	$xml = simplexml_load_file("form_comment_photo.xml");
    	$content = $xml->xpath("/formulaire"); 		$content = $content[0];
     
    /* boucle pour récupérer les noeuds */
    foreach($content  as $element=>$value)	{
    	switch($element)
      	{
    	     case "text":
                        /*  boucle pour récupérer les noms, et valeurs de l'attribue */
    			foreach($xml->$element->attributes() as $att=>$attvalue)
    			{
    				echo  $att . "=" . $attvalue . "<br/>";
    			} 
             	        break;
                 case "password":
                    break;
             }
    }
     
    ?>

    Par avance merci..

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 72
    Par défaut
    j'ai trouvé une solution:

    je transforme l'object en Array:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $list_attribut = array();
    $list_attribut  = $xml->$element->attributes()
    ainsi, je peux accéder directement aux attributs: $list_attribut['label']


    Dommage que l'on ne puisse y accéder avec le caractère @ (XPATH, comme en XSL)

Discussions similaires

  1. [SimpleXML] Afficher un attribut, afficher sa valeur
    Par zuger dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 25/01/2013, 10h40
  2. smart pointer et attribut de classe
    Par fabgamer dans le forum Débuter
    Réponses: 1
    Dernier message: 24/10/2008, 15h51
  3. [SimpleXML] Accéder aux attributs d'un objet
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 28/08/2007, 17h39
  4. [SimpleXML] [DOM] Ajouter un attribut
    Par Klimium dans le forum Bibliothèques et frameworks
    Réponses: 45
    Dernier message: 14/12/2006, 13h56
  5. [SimpleXML] Filtrer des balises grâce à leurs attributs
    Par tatayecorp dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 15/08/2006, 21h06

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