기존 XML 파일에 새 데이터를 삽입하려고했지만 작동하지 않습니다. 이제 PHP를 사용하여 XML 파일에 데이터 삽입 DOM
<list>
<activity>swimming</activity>
<activity>running</activity>
<list>
, 내 생각은 두 개의 파일을 만들고 있었다 :이 파일에 무엇을 표시하고, 새로운 요소를 삽입하기위한 필드를 제공하는 인덱스 페이지를, 그리고 데이터를 삽입하는 PHP 페이지 여기 내 XML 파일입니다 XML 파일에 저장합니다. 여기에 index.php에 대한 코드입니다 :
<html>
<head><title>test</title></head>
</head>
<?php
$xmldoc = new DOMDocument();
$xmldoc->load('sample.xml', LIBXML_NOBLANKS);
$activities = = $xmldoc->firstChild->firstChild;
if($activities!=null){
while(activities!=null){
echo $activities->textContent.'<br/>';
activities = activities->nextSibling.
}
}
?>
<form name='input' action='insert.php' method='post'>
insert activity:
<input type='text' name='activity'/>
<input type='submit' value='send'/>
</form>
</body>
</html
는 여기 insert.php에 대한 코드입니다 :
<?php
header('Location:index.php');
$xmldoc = new DOMDocument();
$xmldoc->load('sample.xml');
$newAct = $_POST['activity'];
$root = $xmldoc->firstChild;
$newElement = $xmldoc->createElement('activity');
$root->appendChild($newElement);
$newText = $xmldoc->createTextNode($newAct);
$newElement->appendChild($newText);
$xmldoc->save('sample.xml');
?>
사용자는 자신이 현재 활동의 목록을 참조 할 경우, index.php에 액세스하는 것입니다 XML 파일에 있고, 새로운 활동을 삽입 할 수있는 아래의 텍스트 필드가 있습니다. 보내기 버튼을 클릭하면 페이지는 insert.php를 호출합니다.이 코드는 DOM 트리에서 XML 파일을 열고, 루트 노드 아래에 새 노드를 삽입하고, 사용자가 있어야하는 index.php 페이지를 다시 호출하는 코드를 포함합니다 활동 목록을 볼 수 있고 다른 활동 아래서 그의 새로운 활동을 볼 수 있습니다. 그것은 작동하지 않습니다. 버튼을 클릭하여 새 항목을 제출하면 페이지가 새로 고쳐지고 아무 것도 나타나지 않습니다. XML은 이전과 동일합니다. 내가 뭘 잘못 했니? 또한, 더 나은 방법이 있는지 알고 싶습니다.
문제는 바보 메신저 ... 실제로 파일 권한만큼 어리석은 일이었다. 누락 =은 오타이므로 문제는 아닙니다. 덕분에 많이 –
하 그것은 일어납니다 :) – Owen