J'essaie de changer le contenu d'un noeud dans un fichier XML en utilisant simpleXML. Je sais que la variable pour le nouveau contenu de noeud contient les bonnes choses, mais pour une raison quelconque le fichier n'est pas changé quand il est sauvegardé. Je manque probablement quelque chose de basique, parce que je suis nouveau à simpleXML. Voici le tout script php:php et simpleXml - comment changer le contenu des noeuds
<?php
$doc=$_REQUEST["book"];
$div1=$_REQUEST["div1"];
$div2=$_REQUEST["div2"];
if ($div1=="") $div1=$_REQUEST["chapter"];
if ($div2=="") $div2=$_REQUEST["verse"];
$div3=$_REQUEST["div3"];
$textresponse=$_REQUEST["xmltext"];
$strippedresponse = "<?xml version='1.0'?>" . stripslashes($textresponse);
echo("Saved changes to " . $doc . " " . $div1 . "." . $div2 ."<br />");
$fileName="/home/ocp/public_html/sites/default/docs/drafts/".$doc.".xml";
$xmlDoc = simplexml_load_file($fileName);
$backupFileName="/home/ocp/public_html/sites/default/docs/backups/".$doc." ".date("Y-m-d H.i.s").".xml";
file_put_contents($backupFileName, $xmlDoc->asXML());
$backupSize = filesize($backupFileName);
echo("Backup {$backupFileName} created:".$backupSize." bytes<br />");
if ($doc) {
if ($div1) {
if ($div2) {
$newVerse = simplexml_load_string($strippedresponse);
$oldVerse = $xmlDoc->xpath("//div[@number='".$div1."']/div[@number='".$div2."']");
$oldVerse = $newVerse;
$newDoc = $xmlDoc->asXml();
file_put_contents($fileName, $newDoc);
$newSize = filesize($fileName);
echo("New file is ".$newSize." bytes <br />");
}
}
}
?>
C'est un énorme morceau de code, contenant beaucoup de code sans rapport avec votre problème. Coupez-le au strict minimum, il sera plus facile pour les gens de le lire et de répondre. Personne ne veut déchiffrer 30 lignes de code pour une question qui peut être résumée en une phrase. –