PHP XML 附加到创建的文件

PHP XML append to created file

我有以下 XML 文档:

<list>
  <person>
     <name>Simple name</name>
  </person>
</list>

我尝试阅读它,基本上创建了另一个 "person" 元素。我想要实现的输出是:

<list>
  <person>
     <name>Simple name</name>
  </person>
  <person>
     <name>Simple name again</name>
  </person>
</list>

这是我的做法:

$xml = new DOMDocument();
$xml->load('../test.xml');
$list = $xml->getElementsByTagName('list') ;

if ($list->length > 0) {
    $person = $xml->createElement("person");

    $name = $xml->createElement("name");        
    $name->nodeValue = 'Simple name again';

    $person->appendChild($name);
    $list->appendChild($person);
}

$xml->save("../test.xml");

我在这里缺少什么?

编辑:我翻译了标签,这样例子会更清楚。

目前,您 pointing/appending 到节点列表而不是找到的父节点:

$list->appendChild($person);
// ^ DOMNodeList

您应该指向元素:

$list->item(0)->appendChild($person);

旁注:文本已经可以放入 ->createElement() 的第二个参数中:

$name = $xml->createElement("name", 'Simple name again');