Aller au contenu

Casse tête avec "Simple"-xml


Mobione

Sujets conseillés

Salut a tous,

J'ai une structure xml qui est mise a ma disposition assez basique du type :

- <items>
- <sous-genre id="58741">
- <film id="381504" name="Nom Film 1" url="www.lien1">
- <artistes>
- <artiste id="1" name="artiste1"></artiste>
- <artiste id="2" name="artiste2"></artiste>
- <artiste id="3" name="artiste3"></artiste>
- </artistes>
- </film>
<film id..2...3...4..etc...>
- </sous-genre>
- </items>

Tout se passe a merveille quand je décide de parser avec simplexml seulement par films.. mais dés que je rajoute la boucle sous-genre ça n'affiche rien ! pourtant ça na rien de sorcier !

<?php 
$bibliotheque = simplexml_load_file("1044.xml");
//la ligne qui pose prob
foreach ($bibliotheque->sous-genre as $genre) {
//le reste des boucles sans prob
foreach ($genre->film as $film) {
foreach ($film->artistes as $artistes) {
foreach ($artistes->artiste as $artiste) {
} } } }
?>

Avez vous une idée du problême , peut etre est-ce a cause du tiret "sous-genre" ? j'en sais rien..

j'attend vos remarques....

[Edit captain_torche] Il est préférable, quand tu postes du code, d'utiliser les balises CODE ou CODEBOX (pour un code plus long) : elles facilitent la lecture, et permettent de conserver l'indentation (cf plus bas)

Lien vers le commentaire
Partager sur d’autres sites

En php, on ne peut utiliser le tiret dans le nom d'une variable. Il y a de fortes chances pour qu'il essaie de faire une soustraction..

Mets un underscore plutot, ou accoles les 2 termes ( " sousgenre " )

Lien vers le commentaire
Partager sur d’autres sites

justement j'ai mis $genre comme variable, apres reste la balise dans le xml.. vu que la balise "sous-genre" je ne peux pas la changer,mais je ne crois pas que cela vienne de là, puisque j'ai changé le nom de la balise a "genre", et cela me donne la même chose "page blanche".

Lien vers le commentaire
Partager sur d’autres sites

redécomposes tes boucles, en passant les variables dans la fonction print_r();

Ca va t'afficher le contenu des tableaux, mais ca va surtout te montrer ce que tu peux utiliser dans la boucle en question ;)

Lien vers le commentaire
Partager sur d’autres sites

Le print_r(); me donne :

SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 1059
)

[film] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 46264
[name] => Nom film1
[url] => www.film1
)

Comment l'interpréter, surtout le debut ? j'avou avoir des connaissences rudimentaires..

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...