Я пытался восстановить файл XML и добавить новый элемент, но, похоже, в конце пропущено '\ n'.
Например, исходный файл похож на
$doc = new DOMDocument;
$doc->formatOutput = true;
$node = $doc->createElement("root");
$ele = $doc->createElement("first-ele", 'ele1');
$node->appendChild($ele);
$ele2 = $doc->createElement("sec-ele", 'ele2');
$node->appendChild($ele2);
$doc->appendChild($node);
$data_string = $doc->saveXML();
echo $doc->saveXML();
Хороший результат.
<?xml version="1.0"?>
<root>
<first-ele>ele1</first-ele>
<sec-ele>ele2</sec-ele>
</root>
Однако я хочу добавить новый элемент в тег root.
$new_doc = new DOMDocument;
$new_doc->loadXML($data_string);
$new_doc->formatOutput = true;
$root = $new_doc->getElementsByTagName('root')->item(0);
$new_element = $new_doc->createElement('third-ele', 'third');
$root->appendChild($new_element);
echo $new_doc->saveXML();
Кажется, что результат пропустите линию разрыва.
<?xml version="1.0"?>
<root>
<first-ele>ele1</first-ele>
<sec-ele>ele2</sec-ele>
<third-ele>third</third-ele></root>
Демо ~ https://3v4l.org/PFk10