如何使用 PHP DOM 在存在 XML 文件中插入节点


how to insert node at exist xml file with php dom

我尝试在现有的xml文件中添加节点,但它不起作用

数.xml

<numbers>
<number>1</number>
<number>2</number>
</numbers>

数.php

<?php
$xml = new DOMDocument();
$xml -> load('number.xml');
$xml_number = $xml->createElement("number");
$xml_number_text = $xml->createTextNode("3");
$xml_number->appendChild($xml_number_text);
$xml_numbers = $xml->getElementsByTagName('numbers');
$xml_numbers->appendChild($xml_number);
$xml->formatOutput=true;
$xml->save("number.xml") or die("Error");
?>

这是一个错误:致命错误:调用未定义的方法 DOMNodeList::appendChild() 在数字中.php如何将数字添加到数字中?我需要它看起来像...

<numbers>
<number>1</number>
<number>2</number>
<number>3</number>
</numbers>

这一行:

$xml_numbers = $xml->getElementsByTagName('numbers');

应该是:

$xml_numbers = $xml->getElementsByTagName('numbers')->item(0);

请注意,getElementsByTagName()将始终返回 XMLNodeList 对象,而不是单个节点 - 即使只找到单个元素,就像您的情况一样。您需要使用 ->item(0) 显式寻址该列表的第一个元素。