function modifxml($nomphoto,$date,$evenement,$personnage,$fichier_xml)
{
$modif = new DomDocument;
//Permet de créer les différents noeud pour les nouvelles photo.
$newphoto = $modif->createElement('photo');
$newnom = $modif->createElement('nom',$nomphoto);
$newdescription = $modif->createElement('description');
$newdate = $modif->createElement('date',$date);
$newevenement = $modif->createElement('evenement',$evenement);
$newprotagoniste = $modif->createElement('protagoniste');
//Boucle permettant l'ajout de plusieurs personnage.
foreach($personnage as $element)
{
$newpersonnage = $modif->createElement('personnage',$element);
$newprotagoniste->appendChild($newpersonnage);
}
//Permet d'ajouter les nouveau fils à la fin des fils.
//$galerie->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);
$newdescription->appendChild($newdate);
$newdescription->appendChild($newevenement);
$newdescription->appendChild($newprotagoniste);
//creation obj DOM
$doc = new DOMDocument;
//charge fichier xml d'origine
$doc->load($fichier_xml);
//creation obj DOM xpath
$doc_xpath = new DOMXPath($doc);
//recherche par xpath du noeud a supprimer (normalement une seule reponse)
$entries=$doc_xpath->query('photo[nom="'.$nomphoto.'"]');
//on selectionne la reponse
$oldnode=$entries->item(0);
// Load the $parent document fragment into the current document
$newnode = $doc->importNode($modif->documentElement, true);
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 24 juil. 2006 à 09:36
Je pense que le mieux c'est de mettre tous les prénoms en majuscules ou en minuscules, voire en minuscules avec la première lettre en majuscule.
Donc tu mets juste avant le "sort" :
foreach($array_unique as galerie) {
$nouveau_tableau[] = ucfirst(strtolower($galerie));
}
Fais gaffe le tableau s'appelle maintenant $nouveau_tableau.
Fais gaffe aussi aux accents, ils ne seront pas forcément mis en majuscules (ca dépend du serveur).
Bon c'est un peu bourrin comme facon mais je viens de me lever et je vois pas d'autres facons.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2006 à 13:35
Hello,
il serait bon que tu précises ce qui ne marche pas, ce qu'il se passe à la place, et la portin de code incréminée.
Parce que là...je ne vois rien d'anormal.
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 20 juil. 2006 à 15:55
Si je me trompe pas il faut ca pour voir ce que renvoie documentElement si oui bas il renvoie rien et je voie pas poukoi.
$modif = new DomDocument;
//Permet de créer les différents noeud pour les nouvelles photo.
$newphoto = $modif->createElement('photo');
$newnom = $modif->createElement('nom','grenou.jpg');
$newdescription = $modif->createElement('description');
$newdate = $modif->createElement('date','12/05/2006');
$newevenement = $modif->createElement('evenement','Vacance');
$newprotagoniste = $modif->createElement('protagoniste');
//Boucle permettant l'ajout de plusieurs personnage.
foreach($perso as $element)
{
$newpersonnage = $modif->createElement('personnage',$element);
$newprotagoniste->appendChild($newpersonnage);
}
//Permet d'ajouter les nouveau fils à la fin des fils.
//$galerie->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);
$newdescription->appendChild($newdate);
$newdescription->appendChild($newevenement);
$newdescription->appendChild($newprotagoniste);
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2006 à 16:27
Tu te trompes...
documentElement renvoie un élément.
On ne lit pas un élémentcomme ça.
Ceci dit, je me rends compte d'un coup :
si j'ai bien pigé, tu veux importer le document à partir du noeud racine "photo".
Bref, c'est le DOMNode photo que tu dois donner.
documentElement renvoie un type DOMElement!
importNode () attend un type DOMNode!
ce qui est très différent...
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 20 juil. 2006 à 16:36
Si jai bien compris ce que tu me dis c'est que DOMNode->replaceChild() ne serait pas compatible avec DOMDocument->importNode(). Si c'est bien cela je comprend pas comment passé outre ce probléme car en faite ma fonction doit pouvoir modifier ce que contient les balise photos.
Si tu pouvais eclairer ma lenterne je t'en remerci car la je patoge merci a toi.
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 21 juil. 2006 à 11:04
Bonjour,
Juste pour dire que j'ai fini par trouver mon erreur qui était enfin de compte trés bête car je faisait pas d'appenchild pour la balise photo voila tou sinon merci a toi et aussi jai encore une question si ca te derange pas.
Car voila jai une select box qui est alimenté par un foreach avec une requete xpath mais j'aimerai pouvoir classer les élément dans la select box par ordre alphabétique aurais tu une idée pour faire cela merci a toi.
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 21 juil. 2006 à 12:03
Sauf que dans mon foreach j'utiliser la fonction array_unique et quand je surcharge en + avec un sort ca marche pas serais tu pourquoi merci a toi
//Boucle permettant de récupérer toutes les personnes.
foreach(array_unique($xml->xpath('//photo/description/protagoniste/personnage')) as $galerie)
{
echo '<option value="'.$galerie.'">'.$galerie.'</option>'."\n";
}
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 23 juil. 2006 à 10:28
Heu...
sort renvoie un booleen. Si tu fais ça, tu vas te retrouver avec un $array_unique qui vaut true. Bref, une variable de type booléen, et plus de type array. Et le foreach va planter.
Ensuite, pourquoi un array_unique () ? On a besoin de ttes les entrées renvoyées par le XPath.
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 23 juil. 2006 à 11:30
J'ai essayé ta méthode est c'est vrai que ca marche pas sinon j'uitlise un array_unique car comme je remplis mon select avec des prenoms et comme parfois des prenom se répété je veux pas qu'il s'affiche plusieurs fois sinon pas une autre idée pour mon probléme merci a vous .
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 23 juil. 2006 à 19:28
Ca classe bien sauf que quand il rencontre un prenom en majuscule il le classe bien et que en miniscule il le classe mal, serais tu pourquoi merci a toi
chanandler
Messages postés86Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 3 décembre 2007 24 juil. 2006 à 10:14
Vi c vrai que c'est un peut bourrin mais pour l'instant je me la met de coté et je vais chercher si y a pas un moyen plus souple pour faire cela merci a toi, tu m'as bien aidé et merci aussi a malalam.