• imprimer
  • aide

Forum de discussions « XML - XSL - WML (WAP) - MATHML »

Retrouvez les publications relatives à ces discussions dans nos rubriques MATHML, WML, XML, XSL.

Problème de modification de fichier XML via PHP

liste des forums liste des discussions Participer à la discussion

Photo de manouel Message publié le samedi 22 novembre 2008 - 11h08 par manouel.
Bonjour,

tout d'abord, je débute en xml alors merci d'avance de votre indulgence si mes questions futures vous paraissent bete.
Je souhaite modifier un document xml à pertir de php.

voila mon fichier xml:
<?xml version="1.0" encoding="ISO-8859-1"?> <nouveaute_doc> <nouveaute> <id_nouv>1</id_nouv> <titre_nouv>NOTES MISES EN LIGNE SUR QUALNET</titre_nouv> <date_nouv>19/11/2008</date_nouv> <detail_nouv> <![CDATA[ - Campagne de vaccination antigrippale 2008<br> &rArr; NDPC/REG/GDR-08-002<br><br> - Test de diagnostic rapide des angines (TDR) « TDF »<br> &rArr; NPDC/GPN/AS-08-001<br><br> - Codes actes et tarifs infirmiers<br> &rArr; NPDC/GPN/PS-08-060<br><br> - Chèque Emploi Service / Calcul des indemnités journalières<br> &rArr; NPDC/GPE/AS-08-028<br><br> - Prothèses auditives<br> &rArr; NPDC/GPN/AS-08-060<br><br> - Dépassement d’honoraires<br> &rArr; NPDC/GPN/PS-08-086 ]]> </detail_nouv> </nouveaute> <nouveaute> <id_nouv>2</id_nouv> <titre_nouv>BIBLIOTHEQUE PROGRES</titre_nouv> <date_nouv>04/11/2008</date_nouv> <detail_nouv> <![CDATA[- Mise à jours de la bibliothèque PROGRES]]> </detail_nouv> </nouveaute> </nouveaute_doc>

et voici mon code php:
function modifxml($id,$date,$titre,$contenu,$fichier_xml) { $modif = new DomDocument; //Permet de créer les différents noeud pour les nouvelles photo. $newnouveaute = $modif->createElement('nouveaute'); $newtitre = $modif->createElement('titre_nouv',$titre); $newdate = $modif->createElement('date_nouv',$date); $newcontenu = $modif->createElement('detail_nouv','<![CDATA['.$contenu.']]>'); //Permet d'ajouter les nouveau fils à la fin des fils. $newnouveaute->appendChild($newtitre); $newnouveaute->appendChild($newdate); $newnouveaute->appendChild($newcontenu); //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('nouveaute[id_nouv="'.$id.'"]'); //on selectionne la reponse $oldnode=$entries->item(0); // Load the $parent document fragment into the current document $newnode = $doc->importNode($modif->documentElement, true); // Replace $oldnode->parentNode->replaceChild($newnode, $oldnode); //enregistrement du fichier $doc->save($fichier_xml); } modifxml('2','12/05/2006','test','Ca c\'est du contenu!','nouveautes.xml');

je rencontre une l'erreur suivante.
<b>Catchable fatal error</b>: Argument 1 passed to DOMDocument::importNode() must be an instance of DOMNode, null given, called in D:\wwwroot\intranet_v2\admin\doc_admin\response.php on line 42 and defined in <b>D:\wwwroot\intranet_v2\admin\doc_admin\response.php</b> on line <b>33</b><br />

Je pense avoir compris que l'argument que j'envoie à cette ligne :
$newnode = $doc->importNode($modif->documentElement, true);
n'est pas de type DOMNode... Cependant, j'avoue que je ne sais pas du tout comment faire pour envoyer mon argument dans le bon format...

Si quelqu'un peut m'aider à ce sujet....
Merci d'avance.

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions