添加子项时,抛出此错误:
无法添加孩子。父级不是 XML 树的永久成员。
我无法解决这个问题。
这是我的代码:
if($visited=='FIRST')
{
$xml=new SimpleXMLElement("<xml/>");
$topology=$xml->addChild("Topology_Configuration");
$flavor=$topology->addChild("Flavor");
$networks=$topology->addChild("Networks");
$vms=$topology->addChild("VMs");
$vnfs=$topology->addChild("VNFs");
$xml->asXML('saddening.xml');
}
else
{
$xml= simplexml_load_file('saddening.xml');
$Topology_Configuration = new SimpleXMLElement($xml->asXML());
$vmcount=$_POST['arguments']['vmcount'];
$flavor=$Topology_Configuration->Flavor;
$flavor_name=$flavor->addChild($_POST['arguments']['flavorName']);
$Topology_Configuration->asXML('saddening.xml');
}
当第一次执行时,文件被创建(在if部分)。否则执行 else 部分。它无法添加子级并在行中抛出错误:
$flavor_name=$flavor->addChild($_POST['arguments']['flavorName']);。请帮忙!!
第一次运行的 XML 会生成如下 XML:
<?xml version="1.0"?>
<xml>
<Topology_Configuration>
<Flavor/>
<Networks/>
<VMs/><VNFs/>
</Topology_Configuration>
</xml>
因此,如果您简化问题,您可以通过以下方式重现它:
$Topology_Configuration = simplexml_load_file($fileName);
$flavor=$Topology_Configuration->Flavor;
$flavor->addChild('abc');
echo $Topology_Configuration->asXml();
结果是:
Warning: SimpleXMLElement::addChild(): Cannot add child.
Parent is not a permanent member of the XML tree in
该消息有点错误,您只是尝试将元素添加到不存在的元素中。$Topology_Configuration
包含xml
元素节点,而不是Topology_Configuration
.
以下是两种可能的解决方案:
更改 XML 结构
使用以下命令创建 XMLTopology_Configuration
作为根元素。
$topology =new SimpleXMLElement("<Topology_Configuration/>");
更改访问权限Flavor
$xml = simplexml_load_file($fileName);
$flavor=$xml->Topology_Configuration->Flavor;
$flavor->addChild('abc');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)