我有一个简单的 XML 字符串:
$sample = new SimpleXMLElement('<root><parent><child1></child1></parent></root>');
我尝试使用 xpath() 查找节点并将子节点添加到该节点。
$node = $sample->xpath('//parent');
$node[0]->addChild('child2');
echo $sample->asXML();
如您所见child2
,添加为 的子项child1
,而不是 的子项parent
。
<root>
<parent>
<child1>
<child2></child2>
</child1>
</parent>
</root>
但如果我更改我的 XML,addChild() 效果很好。这段代码
$sample = new SimpleXMLElement('<root><parent><child1><foobar></foobar></child1></parent></root>');
$node = $sample->xpath('//parent');
$node[0]->addChild('child2');
echo $sample->asXML();
返回
<root>
<parent>
<child1>
<foobar></foobar>
</child1>
<child2>
</child2>
</parent>
</root>
所以我有两个问题:
- 为什么?
- 如果没有孩子,我如何添加
child2
为的孩子?parent
child1