无法使用simplexml_load_file()访问XML文档

时间:2014-03-31 02:01:17

标签: php xml

我需要帮助!我试图从托管服务提供商的网站数据库生成XML文档并从我的家用PC访问它,现在我正在localhost环境中进行。我使用这些代码,我在浏览器中收到错误消息。请看一下我的代码......

用于生成XML文档的

data.php

<?php
include ("koneksi-database.php");

header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";
echo "<outbox>";

$query = "SELECT * FROM `tbstatus` WHERE `status` = '$status' ORDER BY `ID`";
$result = mysql_query($query);

while ($data = mysql_fetch_array($result))
{
echo "<data>";


    echo "<trx>".$data['trx']."</trx>";
    echo "<status>".$data['status']."</status>";
    echo "<signature>".$data['signature']."</signature>";
    echo "<time>".$data['time']."</time>";


echo "</data>";
}

echo "</outbox>";
?>

read.php ,用于读取localhost中的XML文档

print_r($dataxml = simplexml_load_file('data.php'));

我还创建 index.php ,每5秒运行一次脚本。

<html>
<head>
<script type="text/javascript">

var xmlhttp;

function ajax()
{

    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
        }
    else
    {
        xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
        }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            // do nothing
            }
        }


    xmlhttp.open("GET","read.php");
    xmlhttp.send();

    setTimeout("ajax()", 5000);
    }


</script>
</head>
<body onload="ajax();">
    <h1>Server is Running...</h1>
</body>
</html>

最后这是我打开read.php时从浏览器获得的错误消息

Warning: simplexml_load_file() [function.simplexml-load-file]: data.php:9: parser error : Start tag expected, '<' not found in C:\xampplite\htdocs\simpul\baca.php on line 9

Warning: simplexml_load_file() [function.simplexml-load-file]: echo "<?xml version='1.0'?>"; in C:\xampplite\htdocs\simpul\baca.php on line 9

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in C:\xampplite\htdocs\simpul\baca.php on line 9

1 个答案:

答案 0 :(得分:0)

您的print_r($dataxml = simplexml_load_file('data.php'));正在读取原始PHP文件,而不是脚本执行结果!

data.php文件有一个PHP代码,用于输出XML文件,而不是真正的XML文件。

例如,您应该使用print_r($dataxml = simplexml_load_file('http://localhost/data.php'));。 (假设http://localhost/data.php是访问您文件的网址。)

仅使用'data.php'作为参数将从服务器获取原始文件,而不是由PHP处理。