【发布时间】:2019-06-11 17:23:51
【问题描述】:
我正在尝试使用PHP 中的SimpleXML 对现有的XML 文档进行简单的追加。我有一个HTML 表单,它调用一个PHP 脚本,该脚本尝试将数据附加到同一目录中已经存在的XML 文档。
我已经尝试了这个的基本实现,但我不断收到以下错误:
Warning: SimpleXMLElement::addChild(): Cannot add child. Parent is
not a permanent member of the XML tree in
/the/directory/to/the/site/generate.php on line
9
Fatal error: Uncaught Error: Call to a member function addChild() on
null...
这是正在使用的已经存在的XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<tasks>
<users/>
<taskList>
<tasks id="1234">
<activities>
<activity/>
</activities>
</task>
</taskList>
</tasks>
这里是PHP 代码:
<?php
$file = 'tasks.xml';
$xml = simplexml_load_file($file);
$activities = $xml->activities;
$activity = $activities->addChild('activity');
$activity->setAttribute('id', '45678');
$activity->addChild('assigned', 'Jon');
$activity->addChild('priority', 'low');
$xml->asXML($file);
我对这些值进行硬编码只是为了让附加功能起作用,但最终这些值将来自提交的html 表单。
关于为什么失败的任何想法?
【问题讨论】: