2012-09-28 42 views
0

我使用PHP創建XML文件。 XML的結構是正確的,但是當我從瀏覽器中選擇「查看源代碼」時,所有的代碼都在一行中輸出。瀏覽器中的XML「查看源代碼」全部在一行上

我有一個錯誤我試圖調試,它指向我的代碼行(第2行),但是這不像它在多行代碼中那樣有幫助。我從數據庫中提取數據,當代碼在有限的測試範圍內工作時,它在使用所有數據時給我一個錯誤。

錯誤:

DOMDocument::schemaValidate() Generated Errors! 

Fatal Error 68: xmlParseEntityRef: no name in (/home2/path...)" 

下面是我用來創建XML的PHP​​的開始......

<?php 

/* create a dom document with encoding utf8 */ 
$domtree = new DOMDocument('1.0', 'UTF-8'); 

/* create the root element of the xml tree */ 
$xmlRoot = $domtree->createElement('BatchDataSet'); 
/* append it to the document created */ 
$xmlRoot = $domtree->appendChild($xmlRoot); 
$xmlRoot->setAttribute("SchemaVersion","1.0"); 
$xmlRoot->setAttribute("Quarter","2"); 
$xmlRoot->setAttribute("Year","2012"); 

// INSURER INFO: A INSURANCE 

$insurer = $domtree->createElement("Insurer"); 
$insurer = $xmlRoot->appendChild($insurer); 

$insurer->appendChild($domtree->createElement('NAICNumber','12345')); 
$insurer->appendChild($domtree->createElement('Name','Example')); 

$contact = $domtree->createElement("Contact"); 
$contact = $insurer->appendChild($contact); 

$contact->appendChild($domtree->createElement('FirstName', 'Kim')); 
$contact->appendChild($domtree->createElement('LastName','Smith')); 
$contact->appendChild($domtree->createElement('EmailAddress','[email protected]')); 

    ...................... 
+0

您的問題是關於您遇到的錯誤,或者您在查看頁面源代碼時如何讓XML出現在多行上? – newfurniturey

+0

我會更新問題......或者真的,但是如果我可以讓xml出現在多行上,我相信我可以糾正錯誤。 – dabra904

+0

爲了讓它在多行上出現'DOMDocument',使用['formatOutput'](http://php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput)屬性。 – newfurniturey

回答

4

設置formatOutputtrue

$domtree->formatOutput = true; 

來自the documentation

formatOutput

     Nicely formats output with indentation and extra space.

您正在尋找的術語是"pretty" output,它通常反映了人類可讀的縮進標記。

+0

完美 - 謝謝! – dabra904

相關問題