simpleXML을 사용하여 XML 파일에서 노드의 내용을 변경하려고합니다. 나는 새로운 node-contents를위한 변수가 옳은 것을 포함하고 있음을 알고 있지만, 어떤 이유로 그것이 저장 될 때 파일은 변경되지 않는다. 저는 simpleXML을 처음 접했기 때문에 아마 기본적인 것을 놓치고있을 것입니다. 여기에 전체 PHP 스크립트는 다음과 같습니다php 및 simpleXml - 노드 내용을 변경하는 방법
<?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 />");
}
}
}
?>
문제의 코드와는 무관하게 많은 코드가 포함되어 있습니다. 그것을 최소한으로 줄이면 사람들이 그것을 읽고 대답하기가 더 쉬워 질 것입니다. 한 문장으로 요약 할 수있는 질문에 대해 30 줄의 코드를 해독하려는 사람은 없습니다. –