在PHP中回显xml会在浏览器中显示空白页面

时间:2014-08-05 18:03:28

标签: php xml flash

我对此有类似的问题: https://superuser.com/questions/140242/why-my-browsers-display-xml-files-as-blank-pages?rq=1

我在浏览器中看不到我的xml,只是一个空白页面。我只检查了Chrome和Firefox,但它们都发生了。 不同之处在于我从MySQL获取数据并回应它。所以文件扩展名是.php而不是.xml

$row = mysqli_fetch_assoc($resource);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<video>\n";
echo "<path>" . $row['path'] . "</path>\n";
echo "</video>\n";

当我转到网址时,我看到一个空白页面。但是当我查看源代码&#34;时,我看到了xml树。

<video>
 <path>URLtoVideo.mp4</path>
</video>

我的主要目标是获取xml数据并使用URLRequest()在Flash中请求它。但是我得到了这个错误

TypeError: Error #1088: The markup in the document following the root element must be    well-formed.

我认为这可能是我在Flash中遇到的错误的问题。我只有一个根节点,我不认为我对子节点有任何问题。所以我唯一的假设是由于空白页而发生错误。

3 个答案:

答案 0 :(得分:0)

尝试在输出之前添加XML标头。您的浏览器正在尝试将其读取为HTML,否则

header('Content-type: text/xml');

答案 1 :(得分:0)

不显示XML,因为浏览器会解释它。

写作时

<table></table>

在您的HTML页面中,您将看不到字符串

"<table><table\>"

但是一张空桌子。

这与XML内容相同。

另一个Stack溢出帖子得到了这个HERE

的答案

我在这里复制了mellamokb的答案

  

简单的解决方案是嵌入元素内部,这将是   保留格式和尖括号。我也有   使用style =“border:none;”删除边框这使得textarea   不可见的。

     

以下是一个示例:xxxx

答案 2 :(得分:-1)

你需要制作和xml对象/元素然后回显它,另外不要忘记在echo之前添加header('Content-Type: text/xml');

有关详情,请参阅此链接http://php.net/manual/en/simplexml.examples-basic.php