Comment utiliser foreach avec PHP & XML (simplexml)
Quelqu'un qui sait PHP et XML là-bas? Alors s'il vous plaît jeter un oeil!
C'est mon code PHP:
<? $xml = simplexml_load_file("movies.xml");
foreach ($xml->movie as $movie){ ?>
<h2><? echo $movie->title ?></h2>
<p>Year: <? echo $movie->year ?></p>
<p>Categori: <? echo $movie->regions->region->categories->categorie ?></p>
<p>Country: <? echo $movie->countries->country ?></p>
<? } ?>
C'est mys fichier XML:
<?xml version="1.0" encoding="UTF-8"?>
<movies>
<movie>
<title>A movie name</title>
<year>2010</year>
<regions>
<region>
<categories>
<categorie id="3">Animation</categorie>
<categorie id="5">Comedy</categorie>
<categorie id="9">Family</categorie>
</categories>
<countries>
<country id="123">USA</country>
</countries>
</region>
</regions>
</movie>
<movie>
<title>Little Fockers</title>
<year>2010</year>
<regions>
<region>
<categories>
<categorie id="5">Comedy</categorie>
</categories>
<countries>
<country id="123">USA</country>
</countries>
</region>
</regions>
</movie>
</movies>
Le résultat du code ci-dessus est:
<h2>A movie name</h2>
<p>Year: 2010</p>
<p>Category: Animation</p>
<p>Country: USA</p>
<h2>Little Fockers</h2>
<p>Year: 2010</p>
<p>Category: Comedy</p>
<p>Country: USA</p>
Je veux qu'il soit comme ceci (voir catégorie sur le premier film):
<h2>A movie name</h2>
<p>Year: 2010</p>
<p>Category: Animation, Comedy, Family</p>
<p>Country: USA</p>
<h2>Little Fockers</h2>
<p>Year: 2010</p>
<p>Category: Comedy</p>
<p>Country: USA</p>
Remarque: en outre, je me demande comment obtenir la virgule entre les mots, mais sans une virgule sur le dernier mot...
Vous devez vous connecter pour publier un commentaire.
De l'essayer.
while($categorie = current($movie->...->categorie))
etecho next($movie->...->categorie) ? ', ' : '';
travaille trop.c'est la façon dont vous utilisez foreach avec un simplexmlElement:
Vous avez besoin pour itérer sur les
categorie
éléments de trop, de la même manière que vous avez itérermovies
.Vous aurez probablement envie de couper la fuite
,
ainsi.La méthode mentionné dans mon commentaire:
Ensuite, vous pouvez simplement appeler à partir de votre boucle comme:
L'aide d'un tableau et
implode
supprime la nécessité pour la logique de comptage et détection de la dernière catégorie.Isoler dans une fonction rend plus facile à maintenir et moins déroutant que l'imbrication de la boucle (certes boucles imbriquées arent que à confusion).
Essayer celui-ci