2012-12-09 44 views
2

加載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

發生這種情況是因爲我試圖構建多個根元素,而有效的xml文檔可能只有一個根元素。 感謝您的幫助。 – Ankur

回答

3

額外的內容錯誤是由有兩個原因引起的相同的節點,在本例中爲note節點,作爲根元素。

例如,您可以添加新的根元素notes,然後在其中添加更多note元素。

下面是一個使用了SimpleXML庫(只是因爲我用這一個和我熟悉它)

新filename2.xml一個例子:(加入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

相關問題