Ajouter un node et ses enfants dans un fichier xml existant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ajouter un node et ses enfants dans un fichier xml existant

Re: Ajouter un node et ses enfants dans un fichier xml existant

par Wilco1985 » 23 nov. 2010, 15:42

Bon problème résolu, j'utilisais un objet de domelement alors que j'étais dans domDocument... :roll:

Re: Ajouter un node et ses enfants dans un fichier xml existant

par Wilco1985 » 23 nov. 2010, 12:13

Ok pas de souci, c'est juste que j'aime pas trop mettre les scripts du travail sur le net, je ne montre que la partie concernée:

J'ai effacé mon script simple xml, mais j'ai testé avec dom:
$dom = new DomDocument();
					$dom->load($folder."picasa_user".$user_id.".xml");
					$xpath = new Domxpath($dom);
					$root = $dom->getElementsByTagName('picasa')->item(0);
					$infos = $xpath->query('//picasa');
					foreach($infos as $info){
					debug("foreach passe bien ! !");
						$user= $info->getElementsByTagName('user_id')->item(0);
						$date= $user->getElementsByTagName('date')->item(0);
						
						$picture = $date->createElement ("picture");
						$date->appendChild($picture);
						$url 	 = $picture->createElement ("url",$pic_datas['picasaPhotoLink']);
						$pic_id = $picture->createElement ("pic_id", $pic_datas['picasaPicId']);
						$title = $picture->createElement ("title", $pic_datas['title']);
						$description = $picture->createElement ("description", $pic_datas['description']);
						
						$picture->appendChild($url);
						$picture->appendChild($pic_id);
						$picture->appendChild($title);
						$picture->appendChild($description);
					}
					$dom->save($folder."picasa_user".$user_id.".xml");

Les chemins de fichier xml sont corrects, les variables "$pic_datas" aussi... mais ça me met "call to undefined function "createElement"....

Re: Ajouter un node et ses enfants dans un fichier xml existant

par devlop78 » 23 nov. 2010, 01:47

Pourrais-tu nous montrer ton code, déjà ?

Ajouter un node et ses enfants dans un fichier xml existant

par Wilco1985 » 22 nov. 2010, 16:07

Bonjour, j'ai un xml qui prend la forme suivante:

Code : Tout sélectionner

<racine> <utilisateur id='truc'>(unique) <date date='ladate'>(unique) <picture> <lien>lelien</lien> <nom>lenom</nom> <taille>lataille</taille> <picture> <picture> <lien>lelien2</lien> <nom>lenom2</nom> <taille>lataille2</taille> <picture> <picture> <lien>lelien3</lien> <nom>lenom3</nom> <taille>lataille3</taille> <picture> </date> </utilisateur> </racine>
Seul l'élément picture existe en plusieurs exemplaires, je voudrais pouvoir rajouter des elements picture, avec leurs données enfant, en php.

J'ai testé avec simplexml mais ça fait jamais exactement ce que je veux, ça met le bazar dans mon fichier xml (j'imagine que je m'y prends mal...).

Quelqu'un aurait un petit exemple de script adapté à mon cas particulier (mais qui doit être assez courant j'imagine?) avec simplexml ou dom document ou autre, pourvu que ce soit du php? :P