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');
我有以下 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');