Transformation d'un fichier xml sous forme d'un tableau

Signaler
Messages postés
4
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
23 mai 2007
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
bonjoir ,je suis débutant en xml ,je vx juste transformer un fichier xml sous formed un tableau html ou sous forme graphique.Par exemple mon fichier xml comporte des données sur la connexion d un certain nombre d utilisateurs d une plate forme e-learning.J aime obtenir
un graphique ou un tableau qui donne les durée de connexion
 de chaque utilisateur.merci.
voici mon fichier xml.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE user SYSTEM "user.dtd">

1
CEDRIC
POIU

<firstname>CEDRIC</firstname>
<lastname>LEBLANC</lastname>
XX@HOTMAL.COM
<city>PARIS</city>
<country>FR</country>
<timezone>1</timezone>
<firstaccess>12234</firstaccess>
<lastaccess>14332</lastaccess>
<lastogin>435434</lastogin>
<currentlogin>87655</currentlogin>
<lastip>127.0.0.1</lastip>
<timemodified>21345</timemodified>

6 réponses

Messages postés
138
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
29 février 2008

Bonjour,

Tout d'abord, si ton fichier xml contient plusieurs "user", il est mal formé car il faut une balise racine. Dans le cas contraire c'est un bon début.

Pour parser un flux xml, PHP5 propose une fonction sympa, voici un morceau de code :

$flux = simplexml_load_file('report/report_td.xml');

foreach ($flux->user as $user)
{  
   echo $user->id.' '.$user->username.' '.$user->password.'
';
}

Comme tu peux le constater, les variables apres $user->  correspondent au nom des balises (si les mots sont multiples, ils doivent etre séparés par des _ et non des -)

Après, je te laisse faire ta mise en page tableau comme tu le souhaite
Messages postés
138
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
29 février 2008

Tu auras compris qu'il faut remplacer "'report/report_td.xml" par l'url relative vers ton fichier.
Si ce n'est pas un fichier, il suffit d'utiliser la fonction simplexml_load_string($laVariableQuiContientLeFlux)
Messages postés
4
Date d'inscription
lundi 21 mai 2007
Statut
Membre
Dernière intervention
23 mai 2007

Merci darkduck.Mais il me reste un petit probleme.J ai pas pu faire la mise en page tableau et meme quand j ' ai testé ta fonction sympa ça n a rien donné sur ecran.Pourriez vous me donner plus d indications?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
C'est parce que le sombre canard s'est trompé (et que ton xml est
curieux). user est la racine de ton flux xml. Donc, il ne faut pas
faire foreach ($flux -> user as $user) mais foreach ($flux as $user).

Ceci dit, j'aurais pensé que ton xml comporterait plusieurs utilisateurs, et que donc il y aurait une racine différentes :

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE user SYSTEM "user.dtd">





1

CEDRIC

POIU


<firstname>CEDRIC</firstname>

<lastname>LEBLANC</lastname>

XX@HOTMAL.COM

<city>PARIS</city>

<country>FR</country>

<timezone>1</timezone>

<firstaccess>12234</firstaccess>

<lastaccess>14332</lastaccess>

<lastogin>435434</lastogin>

<currentlogin>87655</currentlogin>

<lastip>127.0.0.1</lastip>

<timemodified>21345</timemodified>





Parce que avec ton xml, tu ne peux mettre qu'un seul utilisateur par flux...
Messages postés
138
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
29 février 2008

Merci Malalam de m'avoir repris.
J'ai anticipé sur le multi-user....non c'est vrai j'avoue, je me suis trompé
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Mais non mais non, c'est parce que son flux xml est illogique, ça t'a donc induit en erreur ;-)