Tôi đã cố chèn dữ liệu mới vào một tệp XML hiện có, nhưng nó không hoạt động. Dưới đây là tập tin của tôi xml:Chèn dữ liệu vào tệp XML bằng PHP DOM
<list>
<activity>swimming</activity>
<activity>running</activity>
<list>
Bây giờ, ý tưởng của tôi đã làm hai tập tin: một trang index, nơi mà nó sẽ hiển thị những gì trên các tập tin và cung cấp một lĩnh vực để chèn các yếu tố mới, và một trang php mà sẽ chèn dữ liệu vào tệp XML. Dưới đây là đoạn code cho 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
và đây là mã cho 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');
?>
Người dùng là để truy cập vào index.php, nơi ông sẽ thấy một danh sách các hoạt động hiện tại có mặt trong tệp XML và một trường văn bản bên dưới, nơi anh ấy có thể chèn các hoạt động mới. Khi nhấp vào nút gửi, trang sẽ gọi insert.php, chứa mã mở tệp XML trong cây DOM, chèn nút mới dưới nút gốc và gọi lại trang index.php, nơi người dùng phải có thể xem danh sách các hoạt động, hoạt động mới của anh ấy ở dưới các hoạt động khác. Nó không làm việc. Khi tôi bấm vào nút để gửi một mục mới, các trang làm mới và dường như không có gì xảy ra, XML cũng giống như trước đây. tôi đã làm gì sai? Ngoài ra, tôi muốn biết nếu có một cách tốt hơn để làm điều đó.
vấn đề này thực sự là một cái gì đó như ngớ ngẩn như cho phép tập tin ... im như một kẻ ngốc. thiếu = là một lỗi đánh máy, do đó, đó không phải là một vấn đề. cảm ơn rất nhiều –
ha nó xảy ra :) – Owen