Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中动态生成XML-解析错误_Php_Xml - Fatal编程技术网

在PHP中动态生成XML-解析错误

在PHP中动态生成XML-解析错误,php,xml,Php,Xml,我正在动态生成xml文件,在包含新闻文本时出错错误:XML解析错误:未定义的实体 通过删除新闻文本xml可以完美地生成。这是我正在使用的代码 $sqlNews = "SELECT * FROM news"; $runSqlNews = mysql_query($sqlNews); while ($rowSqlNews = mysql_fetch_array($runSqlNews)) $arrSqlNews[] = $rowSqlNews;

我正在动态生成
xml
文件,在包含新闻文本时出错<代码>错误:XML解析错误:未定义的实体
通过删除新闻文本
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>';
$sqlNews=“从新闻中选择*”;
$runSqlNews=mysql\u查询($sqlNews);
而($rowSqlNews=mysql\u fetch\u数组($runSqlNews))
$arrSqlNews[]=$rowSqlNews;
标题('Content-type:text/xml');
标题(“Pragma:public”);
标头('Cache-control:private');
标题('Expires:-1');
回声“;
回声';
对于($i=0;$i),考虑在处理字符串时添加标记,因为特殊字符会破坏XML解析

echo "<newsText><![CDATA[".$arrSqlNews[$i][news_text]."]]></newsText>";
echo”“;
试试这个:

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

它将阻止浏览器解析来自该字段内容的标记。

PHP有几个扩展来生成XML,这些扩展负责生成有效的语法……这件事在我的本地服务器上运行良好。当我上传到我的站点时,我遇到了这个错误(XML解析错误:找不到元素)。原因可能是什么