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 25/05/2008, 21h26   #1
Membre habitué
 
Étudiant
Inscription : janvier 2008
Messages : 144
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 144
Points : 114
Points : 114
Par défaut [SimpleXML] Gestion d'une liste avec xml

Bonsoir,
Mon problème est le suivant :

Pour un site web je dois réaliser une page concernant des articles de presse.
Je n'ai aucune base de données, c'est pour cela que j'ai pensé à xml.

En gros, mes articles seront regroupés par date de parution (le mois), exemple Avril 2008, Mars 2008 etc..

J'ai pensé à un fichier xml de cette forme là :
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<medialist>
   <date value="Avril 2008">
      <article>lien vers l\'article</article>
      <article>lien vers l\'article</article>
      <article>lien vers l\'article</article>
   </date>
   <date value="Mars 2008">
      <article>lien vers l\'article</article>
      <article>lien vers l\'article</article>
      <article>lien vers l\'article</article>
   </date>
</medialist>
Pouvez vous me dire si c'est une bonne structure de base. Toutes vos idées sont bonne à prendre.

Ensuite, comment modifier ce xml dans une partie d'administration pour permettre l'ajout d'un article, d'une date etc....

Merci d'avance pour vos réponses
juninho269 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 10h07   #2
Membre habitué
 
Avatar de maxime.ohayon
 
Inscription : mai 2007
Messages : 113
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2007
Messages : 113
Points : 100
Points : 100
Salut,

Ta structure de base semble interessante, et pour la manipulation de fichier Xml tu peux utiliser SimpleXml.

Bye
__________________
Faut faire l'ane pour avoir de l'avoine
maxime.ohayon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 13h11   #3
Membre habitué
 
Étudiant
Inscription : janvier 2008
Messages : 144
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 144
Points : 114
Points : 114
Après plusieurs essai, la manipulation de SimpleXML est relativement simple.
Cependant je me permet de soulever un autre problème.
Voici donc mon fichier xml de base que j'ai décider de retenir :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<medialist>
   <date value="Avril 2008">
      <article href="leLien" target="laCible" texte="leTexte" />
      <article href="leLien" target="laCible" texte="leTexte" />
      <article href="leLien" target="laCible" texte="leTexte" />
   </date>
   <date value="Mars 2008">
      <article href="leLien" target="laCible" texte="leTexte" />
      <article href="leLien" target="laCible" texte="leTexte" />
      <article href="leLien" target="laCible" texte="leTexte" />
   </date>
</medialist>
Je m'assure bien sur que lorsque j'ajoute un noeud date la valeur de 'value' n'existe pas déja.

Mais lors de l'ajout d'un article, j'ai besoin de récupérer le 'parent' du nouvel article.
Je pense parcourir le fichier xml, récupérer toutes les dates existantes et les mettre dans un select.
Ensuite lors de la soumission du formulaire, je voudrais récupérer le noeud correspondant.
Exemple (avec le fichier de base) :
Dans mon formulaire, je sélectionne "Avril 2008". Lors de la soumission du formulaire, je récupère donc en POST la chaine "Avril 2008".
Comment faire pour récupérer directement le noeud correspondant à la date pour ensuite faire un addChild('article') ?

Merci d'avance
juninho269 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 15h18   #4
Membre habitué
 
Avatar de maxime.ohayon
 
Inscription : mai 2007
Messages : 113
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2007
Messages : 113
Points : 100
Points : 100
Alors pour ajouter un noeud de type article il faut que tu parcours tout le fichier et que tu mets toutes les dates dans le select mais la technique consiste à passer l'indice en post.

Soit ton fichier XML test.xml
<medialist>
<date value="Avril 2008">
<article href="leLien" target="laCible" texte="leTexte" />
<article href="leLien" target="laCible" texte="leTexte" />
<article href="leLien" target="laCible" texte="leTexte" />
</date>
<date value="Mars 2008">
<article href="leLien" target="laCible" texte="leTexte" />
<article href="leLien" target="laCible" texte="leTexte" />
<article href="leLien" target="laCible" texte="leTexte" />
</date>
</medialist>

imagine ton arbre (xml) comme un tableau à plusieurs dimensions.
tu construis ton select comme cela

<select .....>
<option value="0">Avril 2008</option>
<option value="1">Mars 2008</option>
.........
</select>

et ensuite dans ton script php tu peux faire un truc du genre

$xml = simplexml_load_file('test.xml');

$article = $xml->date[0]->addChild('article');
$article->addAttribute('href', 'leLien');
$article->addAttribute('target', 'laCible');
$article->addAttribute('texte', 'leTexte');



sachant que le '0' correspond à l'endroit où tu veux inserer soit Avril 2008

on n'oubliera pas de sauvegarder

$xml->asXML('test.xml');

et le tour est joué
Bye

Max
__________________
Faut faire l'ane pour avoir de l'avoine
maxime.ohayon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 17h06   #5
Membre habitué
 
Étudiant
Inscription : janvier 2008
Messages : 144
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 144
Points : 114
Points : 114
Merci pour tout, finalement, j'ai du changer la structure du fichier étant donné que je doit utiliser des caractères spéciaux mais le problème est entièrement résolu.

Merci
juninho269 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 20h26.


 
 
 
 
Partenaires

Hébergement Web