Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/04/2006, 12h09   #1
Invité de passage
 
Inscription : avril 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 12
Points : 2
Points : 2
Par défaut [SimpleXML] Problème PHP5/XML pour des affichages particuliers

Bonjour,
Je fais des affichages en php5 à partir d'un fichier XML. Je visualise bien les valeurs du fichier grâce au SimpleXMl, c'est plutot pratique d'ailleurs.
Par contre il y a de petites choses que je ne saisis pas :

- je n'arrive pas à faire appliquer de nombreuses fonctions tableau php aux valeurs de variable XMl qui sont sensées être stockées dans un tableau : Par exemple pour afficher aléatoirement des titres de livres} (ça ne fonctionne pas!):

Code :
1
2
3
4
5
6
7
8
9
10
$data = simplexml_load_file('http://blabla.xml'); 
foreach ($data->livre as $livre) 
{ 
    $pic = $livre->name; 
    $rand_livre = array_rand ($pic , 3); 
    for ($i=0; $i<=2; $i++) 
    {
        echo $rand_livre[$i]; 
    } 
}
- et les répercussions sont que je ne peux pas non plus calculer le nombre total de résultats ou le nombre de valeurs pour un type de données XML (ex: le nombre de titre de livre du fichier)...

Quelqu'un saurait -il d'ou vient mon erreur ? Merci par avance.
Vanilla.
vanilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 12h29   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Bonjour,

Si tu povais nous donner un peu de détails sur le fichier xml ou au moins un petit bout pour voir la structure.

Sinon dans le code, il y a un truc qui me semble bizarre.

Tu parcours tous les noeuds livre du fichier xml via un foreach.

Ensuite tu prends le nom tu livre et tu fais un array_rand dessus, cela me semble bizarre car le nom ne doit pas etre un tableau ??

Avec un bout du xml, on devrait s'en sortir un peu mieux

Pierre
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 12h46   #3
Invité de passage
 
Inscription : avril 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 12
Points : 2
Points : 2
Bonjour

Voici un bout du fichier xml :
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<biblio>
  <livre>
    <id>1932ab</id> 
    <chapitre>10</chapitre> 
    <name>Histoire naturelle</name> 
    <auteur>inconnu</auteur> 
    <categorie>Sciences naturelles</categorie> 
    <Nom_chapitre>
      <chapitre>Introduction</chapitre>
      <chapitre>Les especes</chapitre> 
      <chapitre>La faune</chapitre>
      <chapitre>La flore</chapitre> 
    </Nom_chapitre>
  </livre>
  <livre>
    <id>1933c</id> 
    <chapitre>22</chapitre> 
    <name>Hostoires extraordianires</name> 
    <auteur>Edgar A Poe</auteur> 
    <categorie>Roman</categorie> 
    <Nom_chapitre>
      <chapitre>blabla</chapitre>
      <chapitre>Les personnages</chapitre> 
      <chapitre>Blibli</chapitre>
      <chapitre>Post</chapitre> 
    </Nom_chapitre>
  </livre>
</biblio>

Pour ce qui te parait bizare, c'est en effet là ou je coince. je n'arrive pas à accéder à l'ensemble des résultats : à mettre toutes les valeurs dans une variable tableau pour travailler dessus!!!

Merci, à très bientôt.
vanilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 12h54   #4
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Si tu veux recuperer tous les noms des livres, tu peux utiliser la fonction xpath() qui peut te retourner tous les élements correspondants à la recherche plus d'infos dans la doc

Pierre
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 12h57   #5
Invité de passage
 
Inscription : avril 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 12
Points : 2
Points : 2
je veux en récupérer que certains (par exemple aléatoirement) car tous avec simple xml et foreach ça marche très bien. et j'aimerais aussi savoir combien j'ai de livres dans le fichier xml.
vanilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 13h00   #6
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
C'est pour cela que je te parle de xpath()

Code :
1
2
 
$nom_livre = $data->xpath('//livre/name');

Avec ca tu as un tableau avec tous les noms des livres. libre à toi ensuite de faire un random dessus
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 13h04   #7
Invité de passage
 
Inscription : avril 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 12
Points : 2
Points : 2
ok, excuse je n'avais pas compris.
je teste de suite et je te tiens au courant.
merci.
vanilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 13h22   #8
Invité de passage
 
Inscription : avril 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 12
Points : 2
Points : 2
ça y est, ça marche nikel.
Je vais pouvoir continuer car j'étais vraiment bloquée.
merci encore FCYPBA.
@ bientôt.
vanilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h40.


 
 
 
 
Partenaires

Hébergement Web