Aller au contenu

Casse tête avec "Simple"-xml


Sujets conseillés

Posté

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)

Posté

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 " )

Posté

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".

Posté

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 ;)

Posté

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

Veuillez vous connecter pour commenter

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



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