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] gestion du XML en PHP , DOM


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Points : 68
    Points
    68
    Par défaut [DOM] gestion du XML en PHP , DOM
    bonjour a tous,j'ai un petite probleme,je veux imbriquer le foreach dans un autre foreach
    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
     
    $dom = new DomDocument();
    $dom->load('anema.xml');
    $listeclasse = $dom->getElementsByTagName("ModelAssociation");
    $listeclasse2 = $dom->getElementsByTagName("ModelClass");
    foreach($listeclasse as $class)
    {if ($class->hasAttribute("xmi.id") AND $class->hasAttribute("name"))
         {echo  " - " . $class->getAttribute("xmi.id") . $class->getAttribute("name");
          echo "<br />";
          foreach($listeclasse2 as $class2)
      {if ($class2->hasAttribute("xmi.idref")) 
        {echo  " - " . $class2->getAttribute("xmi.idref");
    	echo "<br />";
         } 
       }
    }}
    je veux avoir un truc du genre,pour chaque balise 'ModelAssociation' afficher ses 'ModelClass' puis passer a la balise 'ModelAssociation' suivante
    mais le code ci dessus m'affiche tous les modelClass (meme ceux qui sont en dehors du 'ModelAssociation' correspondant)
    que faut t(il modifier dans le code pour réponde a mes besoins??
    merci

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Je deconseille l'utilisation de l'api dom pour la lecture de fichier xml.
    Simplexml est reellement 100 fois plus simple puisqu'elle transforme les fichiers en tableau php.

    http://fr.php.net/manual/fr/intro.simplexml.php

    Pour l'ecriture de fichier xml, l'API DOM est bien plus puissante. Par contre pour la lecture, ne vous encombrez pas inutilement. C'est prendre un buldozer pour retirer les mauvaises herbes

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Phelim Voir le message
    Je deconseille l'utilisation de l'api dom pour la lecture de fichier xml.
    Simplexml est reellement 100 fois plus simple puisqu'elle transforme les fichiers en tableau php.

    http://fr.php.net/manual/fr/intro.simplexml.php

    Pour l'ecriture de fichier xml, l'API DOM est bien plus puissante. Par contre pour la lecture, ne vous encombrez pas inutilement. C'est prendre un buldozer pour retirer les mauvaises herbes

    c'est pas ça le probleme,meme si j'utilise simplexmi ça va poser le meme probleme qd je veux faire une imbrication des foreach,genre le foreach qui est a l'interieur du grand foreach va récupérer ts les attributs meme ceux qui sont en dehors de la premiere balise que récupere le foreach externe!!!!

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 197
    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 197
    Points : 8 414
    Points
    8 414
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par naazih Voir le message
    je veux avoir un truc du genre,pour chaque balise 'ModelAssociation' afficher ses 'ModelClass' puis passer a la balise 'ModelAssociation' suivante
    Et bien dans ce cas il faut faire dans ton 1er foreach( ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $modelsClasses = $class->getElementsByTagName('ModelClass') ;
    Tu pourras ensuite boucler sur $modelsClasses.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Et bien dans ce cas il faut faire dans ton 1er foreach( ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $modelsClasses = $class->getElementsByTagName('ModelClass') ;
    Tu pourras ensuite boucler sur $modelsClasses.
    merci bcp,ça marche nikel

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

Discussions similaires

  1. [DOM XML] Gestion du XML en PHP 4
    Par othmane126 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/07/2007, 11h08
  2. [XML-PHP-DOM] Application web, gestion de la mémoire
    Par Zini dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/04/2006, 10h36
  3. [DOM] récupération de XML par PHP
    Par shingara dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 13/02/2006, 20h56
  4. [DOM] Validation xml avec PHP
    Par thefaycal dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 26/01/2006, 21h15
  5. [DOM] Parsage XML en PHP 4
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 07/12/2005, 22h24

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