Affiche contenu fichier xml en php
Résolu
Flatbeat
Messages postés
35
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Salut, ma question est toute bête mais ça m'énerve, j'ai un fichier xml de ce type
<personne>
<nom>george</nom>
<enfant>bob</enfant>
</personne>
<personne>
<nom>sylvain</nom>
<enfant>luc</enfant>
<enfant>alphonse</enfant>
</personne>
Je veux afficher une liste des noms et pour chaque nom, afficher une liste avec les enfants (il peut y en avoir aucun, un ou plusieurs) en php. J'ai fait cela mais je n'arrive pas a afficher les enfants.
merci d'avance !
<personne>
<nom>george</nom>
<enfant>bob</enfant>
</personne>
<personne>
<nom>sylvain</nom>
<enfant>luc</enfant>
<enfant>alphonse</enfant>
</personne>
Je veux afficher une liste des noms et pour chaque nom, afficher une liste avec les enfants (il peut y en avoir aucun, un ou plusieurs) en php. J'ai fait cela mais je n'arrive pas a afficher les enfants.
$dom = new DomDocument;
$dom->load("fichier.xml");
$personne = $dom->getElementsByTagName('personne');
$i=0;
echo "<ul>";
foreach($personne as $personne_nom)
{
echo "<li>";
echo personne_nom->firstChild->nodeValue;
echo "</li>";
}
echo "</ul>";
merci d'avance !
A voir également:
- Affiche contenu fichier xml en php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
J'étais entrain de le faire donc je te répond quand même ^^
Le problème déjà est ta structure. un fichier XML correct serait comme ça
Ensuite il faut récupérer élément par élément, une manière plus propre et plus ordonnée.
----------fichier.php----------- <?php $dom = new DomDocument; $dom->load("fichier.xml"); $racine = $dom->documentElement; $personne = $racine->getElementsByTagName('personne'); if(@$dom->validate()) { foreach($personne as $contenu) { echo "<ul>"; $nom = $contenu->getElementsByTagName('nom'); echo "<li>"; echo $nom->item(0)->firstChild->nodeValue; echo "</li>"; $enfants = $contenu->getElementsByTagName('enfants'); $enfant = $enfants->item(0)->getElementsByTagName('enfant'); foreach($enfant as $value) { echo "<li>"; echo $value->firstChild->nodeValue; echo "</li>"; } echo "</ul>"; } } else $dom->validate();Bon courage ^^