"); $topology=$xml->addChild("Topology_Configuration"); $flavor=$topology->addChild("Flavo">
添加子对象时,抛出此错误:无法添加子对象。父级不是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 part中)。否则,将执行else部分。它无法添加子对象,并在代码行中抛出错误:
$flavor_name=$flavor->addChild($_POST'arguments');.请帮帮我!!
发布于 2016-08-31 08:20:41
第一次,您可以使用example添加子节点
$new_xml = new SimpleXMLElement("<root></root>");
$new_xml->addAttribute('newAttr', 'value');
$newsIntro = $new_xml->addChild('content');
$newsIntro->addAttribute('type', 'value');
Header('Content-type: text/xml');
echo $new_xml->asXML();
和结果
<?xml version="1.0"?>
<news newAttr="value">
<content type="value"/>
</news
发布于 2016-08-31 09:06:22
第一次运行得到的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结构
创建以Topology_Configuration
作为根元素的XML。
$topology =new SimpleXMLElement("<Topology_Configuration/>");
更改对Flavor
的访问
$xml = simplexml_load_file($fileName);
$flavor=$xml->Topology_Configuration->Flavor;
$flavor->addChild('abc');
https://stackoverflow.com/questions/39243297
复制相似问题