我试图将新数据插入现有的 XML 文件,但它不起作用。这是我的xml文件:
<list>
<activity>swimming</activity>
<activity>running</activity>
<list>
现在,我的想法是制作两个文件:一个索引页面,它显示文件上的内容并提供一个用于插入新元素的字段,以及一个将数据插入 XML 文件的 php 页面。下面是 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 与以前相同。我做错什么了?另外,我想知道是否有更好的方法。