0
그래서 XML 파일을 편집해야하는 코드 조각을 작성했습니다. 그러나 그것은 효과가없는 것처럼 보입니다. 모든 것을 검사했는데 모든 데이터가 통과 한 것 같지만 어떻게 든 노드를 업데이트하지 않습니다. xml 파일과 데이터를 생성하면 데이터가 추가됩니다. 하지만 어쨌든 나는 그것을 업데이트하는 것처럼 보일 수 없다.DOMDocument가 nodeValue를 업데이트하지 않습니다
if ($edit && isset($_POST["submit"])) {
$doc = new DomDocument('1.0');
$doc->validateOnParse = true;
$doc->load('data.xml');
$message = getElementById($_GET["id"], $doc);
$message->getElementsByTagName("title")->nodeValue = 'hey';
$message->getElementsByTagName("content")->nodeValue = $_POST["content"];
$target = $message->getElementsByTagName("target")->nodeValue = $_POST["target"];
$date1 = $message->getElementsByTagName("startDate")->nodeValue = $_POST["date1"];
$date2 = $message->getElementsByTagName("endDate")->nodeValue = $_POST["date2"];
$doc->formatOutput = true;
$doc->save('data.xml');
}
function getElementById($id, $doc)
{
$xpath = new DOMXPath($doc);
return $xpath->query("//*[@id='$id']")->item(0);
}
XML : 당신이 getElementsByTagName
를 호출 할 때,이 태그의 이름과 일치하는 노드의 목록을 반환
<message id="5a1c301ae5429" top="12px" left="12px" duration="20">
<title>hey</title>
<content>12345</content>
<target>2</target>
<startDate>27/11/2017 16:30</startDate>
<endDate>27/11/2017 16:50</endDate>
<media type="image" width="200px" height="200px" top="-20px" left="129px">
<uri>
localhost/xml/uploads/4215c27edf5ff51aee0def29f84949be.jpg
</uri>
</media>
</message>
저장하기 전에 xml 파일을로드하십시오. 모든 첫 번째 변경 사항은 무시됩니다. – Camille
@Camille, 죄송합니다. 테스트에서 제거하는 것을 잊어 버렸지 만 문제는 아닙니다. – Dani
date1과 date2는 없지만 StartDate와 endDate는 없습니다. – splash58