获取xml文件的内容会创建XML分析错误

时间:2013-01-30 18:22:42

标签: php xml http-headers

我正在尝试获取XML文件的内容,以防文件存在或我正在生成新的xml文件。问题是,当我尝试获取xml文件时,我收到此错误:

  

XML解析错误:找不到元素位置:   http://mydomain.gr/generate.php第1行,第1列:^

我的代码就是这个

<?php

include_once('xmlgenerator.php');
$xml = new XmlGenerator();
if($xml->cachefile_exists){
    if(!$xml->is_uptodate()){
        // echo "update it now";
        $xml->createFile = 1;
        $data = $xml->create();
        Header('Content-type: text/xml');
        print($data->asXML());
    }else{
        //echo "doesn't need any update.";
        Header('Content-type: text/xml');
        file_get_contents($xml->cached_file);
    }
}else{
   // echo "Didn't find any cache file. Lets Create it";
        $xml->createFile = 1;
        $data = $xml->create();
        Header('Content-type: text/xml');
        print($data->asXML());
}
?>

XML结构很好,我仔细检查XML文件编码或调用XML的php文件。一切都是没有BOM的UTF8。当我直接在浏览器中打开XML文件时,它看起来很完美,并且是一个有效的文件(使用w3c和在线工具进行检查)。

产生问题的2行(最有可能):

Header('Content-type: text/xml');
file_get_contents($xml->cached_file) 

我甚至删除了任何内容,只是使用了这2行并得到了同样的错误。

那有什么不对?有没有正确的方法在php文件中包含XML文件,更改标题并将其显示给最终用户?我真的不想重定向,我需要留下相同的php文件只显示XML内容。

1 个答案:

答案 0 :(得分:1)

echo file_get_contents($xml->cached_file)