使用表单使用PHP将节点附加到XML

时间:2012-02-05 16:36:17

标签: php xml

我是PHP的新手,我试图使用PHP将节点附加到XML。

这是我的comments.php文件:

<?php 

$date = "http://jdrag.x10.mx/comments_file.xml";
$xml = simplexml_load_string($data);
$commentt = $xml->addChild("comment");
$name = $_POST["cname"];
$email = $_POST["cemail"];
$comment = $_POST["comment"];
$commentt->addChild("name", $name);
$commentt->addChild("email", $email);
$commentt->addChild("commentInside", $comment);

echo $xml->saveXML();

?>

我的comments.html是:

<form action="comments.php" method="post">
Name: <input type="text" name="cname" />
Email: <input type="text" name="cemail" />
Comment: <input type="text" name="comment" />
<input type="submit" />
</form>

正如您所看到的comments标记Fatal error: Call to a member function addChild() on a non-object in /home/jdragx10/public_html/comments.php on line 5

,我的XML文件很简单

但是当我提交表单时,我收到了这个错误:

{{1}}

因为我是PHP的新手,我真的不知道它意味着什么或如何解决它。 提前感谢能够修复我的代码的任何人。

1 个答案:

答案 0 :(得分:1)

您希望使用simplexml_load_file()

simplexml_load_string()函数将XML文档作为字符串,而simplexml_load_file()将获取包含XML的文件的路径,就像您一样。


您对变量名称也有一些问题,XML文件的路径保存在$date中,而您尝试使用变量$data加载XML。


最后,确保在编写代码时打开(并达到最高级别)错误报告。上面的代码给出了一条通知消息(“通知:未定义的变量:数据......”),而不只是一个致命的错误消息。

将值display_errorserror_reporting分别设置为On文件或-1文件中的php.ini和{{1}}。