PHP XML DOM为什么不能将新记录添加到XML中?

时间:2015-08-12 23:45:13

标签: php xml dom

那里。第一次触摸XML的东西。但我的代码无法将新记录添加到XML文件中。请帮帮我。

首先,我有 studentdb.xml ,如下所示:

<root></root>

然后, insertxml.php 文件是这样的:

<?php

if (isset($_POST['insert']))
{
    $xml = new DomDocument("1.0","UTF-8");
    $xml-> formatOutput = true;
    $xml->load('http://www.beautysalonishere.tk/studentdb.xml');

    $cname = $_POST['c_name'];
    $hadd = $_POST['h_add'];

    $rootTag = $xml->getElementByTagName("root")->item(0);

    $infoTag = $xml->createElement("info");

        $nameTag = $xml->createElement("name", $cname);
        $addTag = $xml->createElement("address", $hadd);

        $infoTag->appendChild($nameTag);
        $infoTag->appendChild($addTag);

    $rootTag->appendChild($infoTag);
    $xml->save('http://www.beautysalonishere.tk/studentdb.xml');
}

?>
<html>
<body>

<form method = "POST" action = "insertxml.php">
Stud Info</br>
PNAME<input type ="text" name="c_name"></br>
add <input type ="text" name="h_add"></br>
<input type="submit" name "insert" value="add">
</form>

</body>
</html>

我不知道哪里出错导致我无法添加新记录。

1 个答案:

答案 0 :(得分:1)

总结所有评论......

  1. 修复提交按钮的name属性

    <input type="submit" name="insert" value="add">
    
  2. 通过

    设置$rootTag
    $rootTag = $xml->documentElement;
    
  3. 此外,您无法save XML到该远程位置。我假设您的主机实际上是 beautysalonishere.tk 并且您的脚本位于文档根目录中,因此请使用

    $dbFile = __DIR__ . '/studentdb.xml';
    
    $xml->load($dbFile);
    

    $xml->save($dbFile);