単純な 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>
だから私は2つの質問があります:
- なんで?
- 子がいない場合
child2
、 の子として追加するにはどうすればよいですか?parent
child1