当前位置:  开发笔记 > 编程语言 > 正文

使用PHP DOM在XML文件中插入数据

如何解决《使用PHPDOM在XML文件中插入数据》经验,为你挑选了1个好方法。

我试图将新数据插入到现有的XML文件中,但它无法正常工作.这是我的xml文件:


    swimming
    running

现在,我的想法是创建两个文件:一个索引页面,它显示文件中的内容并提供一个用于插入新元素的字段,以及一个将数据插入XML文件的php页面.这是index.php的代码:


test


load('sample.xml', LIBXML_NOBLANKS);

    $activities = = $xmldoc->firstChild->firstChild;
    if($activities!=null){
        while(activities!=null){
            echo $activities->textContent.'
'; activities = activities->nextSibling. } } ?>
insert activity:

这是insert.php的代码:

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与以前相同.我做错了什么?此外,我想知道是否有更好的方法.



1> Owen..:

是您的代码块复制并粘贴现有文件?如果是这样,我看到两个潜在问题:

// should be:

注意:你缺少action="insert.php",这会导致表单只是在不提交的情况下重新加载,这就是你描述的行为.

其次,请确保您具有"sample.xml"的写入权限.你可以确认你是否真的在写任何东西:

print 'I wrote '.$xmldoc->save('sample.xml').' bytes of data';

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有