Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2008, 15h42   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 130
Points : 35
Points : 35
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 :
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
naazih est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 16h03   #2
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
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
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 16h54   #3
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 130
Points : 35
Points : 35
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!!!!
naazih est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 17h04   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
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 :
$modelsClasses = $class->getElementsByTagName('ModelClass') ;
Tu pourras ensuite boucler sur $modelsClasses.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 17h15   #5
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 130
Points : 35
Points : 35
Citation:
Envoyé par Séb. Voir le message
Et bien dans ce cas il faut faire dans ton 1er foreach( ) :

Code :
$modelsClasses = $class->getElementsByTagName('ModelClass') ;
Tu pourras ensuite boucler sur $modelsClasses.
merci bcp,ça marche nikel
naazih est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web