2012-12-12 33 views
2

我正在動態生成xml文件,並且在包含時出現錯誤newstextError: XML Parsing Error: undefined entityERROR
刪除newstextxml生成完美。這是我使用的代碼。在PHP中動態生成XML - 解析錯誤

$sqlNews = "SELECT * FROM news"; 

$runSqlNews = mysql_query($sqlNews); 

while ($rowSqlNews = mysql_fetch_array($runSqlNews)) 
    $arrSqlNews[] = $rowSqlNews; 


    header('Content-type: text/xml'); 
    header('Pragma: public'); 
    header('Cache-control: private'); 
    header('Expires: -1'); 
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 

    echo '<xml>'; 

for($i=0;$i<count($arrSqlNews);$i++) 
{ 
    echo "<news>"; 
     echo "<newsId>".$arrSqlNews[$i][id]."</newsId>"; 
     echo "<newsAuthor>".$arrSqlNews[$i][news_author]."</newsAuthor>"; 
     echo "<newsText>".$arrSqlNews[$i][news_text]."</newsText>"; 
     echo "<description>".$arrSqlNews[$i][news_description]."</description>"; 
     echo "<image>".$arrSqlNews[$i][news_image]."</image>"; 
    echo "</news>";  
} 
    echo '</xml>'; 

希望我的問題很清楚。提前致謝 !!

+0

PHP有幾個擴展來生成XML,負責生成有效的語法...... –

回答

2

考慮每次使用字符串時都要添加CDATA標記,因爲特殊字符會破壞XML解析。

echo "<newsText><![CDATA[".$arrSqlNews[$i][news_text]."]]></newsText>"; 
+0

什麼是這個錯誤:XML解析錯誤:沒有良好形成 –

1

試試這個:

echo "<newsText><![CDATA[".$arrSqlNews[$i][news_text]."]]></newsText>"; 

它會阻止瀏覽器從該字段的內容解析標籤。

+0

這件事情在我的本地服務器上正常工作。當我上傳到我的網站時,我得到了這個錯誤(XML解析錯誤:找不到元素)。可能是什麼原因 –