加载xml文件时出错。我得到了许多与该主题相关的答案,但我真的无法找到为什么这个错误可能会出现在我的文件中。
Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Extra content at the end of the document
当我运行该文件时,它运行成功,但是当我重新加载它时,它会给出上述错误而不是添加另一个节点。但是,下次我重新加载它再次成功运行。这种情况正在发生。请有人告诉我为什么会这样,以及如何解决问题。
我正在使用这个php代码来编辑xml文件:
<?php
$dom = new DomDocument("1.0", "UTF-8");
$dom->load('filename.xml');
$noteElem = $dom->createElement('note');
$toElem = $dom->createElement('to', 'Chikck');
$fromElem = $dom->createElement('from', 'ewrw');
$noteElem->appendChild($toElem);
$noteElem->appendChild($fromElem);
$dom->appendChild($noteElem);
$dom->formatOutput = TRUE;
//$xmlString = $dom->saveXML();
//echo $xmlString;
$dom->save('filename.xml');
?>
这是我正在编辑的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Chikck</to>
<from>ewrw</from>
</note>
答案 0 :(得分:3)
额外内容错误是由两个相同的节点(在本例中为note
节点)作为根元素引起的。
例如,您可以添加新的根元素notes
,然后在其中添加更多note
个元素。
这是使用simplexml库的一个例子(仅仅因为我使用了这个,我对它很熟悉)
新的filename2.xml :(以root身份添加notes
元素)
<?xml version="1.0" encoding="UTF-8"?>
<notes>
<note>
<to>Chikck</to>
<from>ewrw</from>
</note>
</notes>
PHP脚本:
<?php
$xml = simplexml_load_file('filename2.xml');
$note = $xml->addChild('note');
$to = $note->addchild('to', 'Chikck');
$from = $note->addChild('from', 'ewrw');
$xml->asXML('filename2.xml');
?>
运行脚本后filename2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<notes>
<note>
<to>Chikck</to>
<from>ewrw</from>
</note>
<note>
<to>Chikck</to>
<from>ewrw</from>
</note>
</notes>