我正在尝试将一个子项添加到Simple XML对象中,但是当该级别上已存在具有相同名称的元素时,它不会被添加。
以下是我正在尝试的内容:
$str = '<?xml version="1.0"?>
<root>
<items>
<item></item>
</items>
</root>';
$xml = new SimpleXMLElement($str);
$xml->addChild('items');
print $xml->asXML();
我得到与我开始时完全相同的xml,当我真正想要的是第二个空项目元素时。如果我使用的是另一个元素名称而不是添加它。
答案 0 :(得分:1)
使用此代码在示例中添加新项目节点:
$str = '<?xml version="1.0"?>
<root>
<items>
<item></item>
</items>
</root>';
$xml = new SimpleXMLElement($str);
$xml->addChild('items', '');
var_dump($xml->asXML());
哪个输出:
string '<?xml version="1.0"?>
<root>
<items>
<item/>
</items>
<items></items></root>
' (length=109)
答案 1 :(得分:0)
您可以使用simpleloadxml
作为替代
$xml = simplexml_load_file("myxml.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$itemsNode = $sxe->items[0];
$itemsNode->addChild("item", $newValue);
$sxe->asXML("myxml.xml");