Ich versuche, den Inhalt eines Knotens in einer XML-Datei mit SimpleXML zu ändern. Ich weiß, dass die Variable für den neuen Node-Inhalt das richtige Zeug enthält, aber aus irgendeinem Grund wird die Datei nicht geändert, wenn sie gespeichert wird. Ich verpasse wahrscheinlich etwas Grundlegendes, weil ich neu bei simpleXML bin. Hier ist der gesamte PHP-Skript:php und simpleXml - wie Knoten Inhalt ändern
<?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 />");
}
}
}
?>
Das ist ein riesiger Code, der viel Code enthält, der nichts mit Ihrem Problem zu tun hat. Schneiden Sie es auf das Nötigste herunter, es wird es den Leuten leichter machen, es zu lesen und zu beantworten. Niemand möchte 30 Zeilen Code für eine Frage entschlüsseln, die in einem Satz zusammengefasst werden kann. –