Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 10/06/2011, 14h55   #1
Membre régulier
 
Chercheur
Inscription : août 2004
Messages : 180
Détails du profil
Informations personnelles :
Localisation : Canada

Informations professionnelles :
Activité : Chercheur
Secteur : Enseignement

Informations forums :
Inscription : août 2004
Messages : 180
Points : 73
Points : 73
Envoyer un message via MSN à androz
Par défaut Modifier un fichier XML

Bonjour !

J'ai un souci (comme tous les posts ici lol)

J'ai un fichier xml genre journal de bord que je remplis avec un formulaire standard. Ce fichier est ensuite affiché en le mettant en forme avec un fichier xslt. Jusque là, rien d'extraordinaire. Maintenant, je voudrais pouvoir modifier le contenu de mon fichier xml. Par exemple, imaginons ce fichier xml :

Code :
1
2
3
4
5
6
7
8
9
<item>
<titre>Titre1</titre>
<description>Description1</description>
</item>
 
<item>
<titre>Titre2</titre>
<description>Description2</description>
</item>
Ce que je fais, c'est qu'à l'affichage (mise en forme) de mon xml, j'ajoute un lien vers une page "modifier" avec en variable le titre et la description de l'item à modifier. J'affiche alors dans un formulaire l'ancien titre et l'ancienne description. J'arrive à récupérer le nouveau titre et la nouvelle description mais je n'arrive pas à modifier mon fichier xml. Ce que j'avais fait dans un premier temps, j'avais essayé de simplement faire un str_replace, mais c'est comme s'il ne trouvait pas l'ancien text dans mon fichier xml, je suppose que c'est un problème au niveau des sauts de ligne ou qqch du genre.

Y aurait-il un moyen plus intelligent de faire ça ? J'arrive très bien à remplacer juste la description par exemple (avec str_replace), mais pas les deux à la fois.

Merci pour votre aide ! (je suis plus que débutant en PHP/XML & Co)
androz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 14h56   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
utilise SimpleXML
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/06/2011, 17h04   #3
Membre régulier
 
Chercheur
Inscription : août 2004
Messages : 180
Détails du profil
Informations personnelles :
Localisation : Canada

Informations professionnelles :
Activité : Chercheur
Secteur : Enseignement

Informations forums :
Inscription : août 2004
Messages : 180
Points : 73
Points : 73
Envoyer un message via MSN à androz
Merci pour le lien, c'est tout à fait ce que je cherchais.
Toutefois, j'ai encore un problème... je n'arrive pas à modifier un node. Je parcours mon fichier xml, je vérifie que je suis sur le bon attribut, et je modifie le contenu des nodes, seulement ça ne marche pas. J'ai essayé d'afficher le contenu des nodes pour m'assurer que je pointais vers les bons, et c'est le cas.
Qu'est-ce qui cloche avec ce code ?

Code :
1
2
3
4
5
6
7
8
foreach ($xml->item as $item) {
  if((string)$item['num'] == $numero){
    $item->title = $titre;
    $item->operateur = $operateur;
    $item->description = 'toto';
    $item->pubDate = $date;
    }
}
androz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 20h35   #4
Membre régulier
 
Chercheur
Inscription : août 2004
Messages : 180
Détails du profil
Informations personnelles :
Localisation : Canada

Informations professionnelles :
Activité : Chercheur
Secteur : Enseignement

Informations forums :
Inscription : août 2004
Messages : 180
Points : 73
Points : 73
Envoyer un message via MSN à androz
bon ben j'ai fait ça avec le DOM, au moins c'est plus propre
Merci !
androz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h55.


 
 
 
 
Partenaires

Hébergement Web