将PHP文件解析为XML文件?

Cal*_*leb 1 php xml mysql database parsing

我一直在研究一个在XML文件中显示数据的项目.(它有点像API).我知道如何用PHP解析XML,以及如何在PHP中创建XML文件,但它们不能一起工作.:)

基本上,我有两个文件:parse.phpxml.php.

xml.php 从MySQL数据库中获取信息,并将其作为XML输出.

parse.php加载并解析xml.php并将其输出为HTML.

如果我跑parse.php,它不会加载xml.php.但是,如果我复制输出的XML(从xml.php)并将其保存为xml.xml文件(并将文件名更改parse.php为'xml.xml'),则可以正常工作.我真的很感激任何帮助.

parse.php的内容:

<?php

    $doc = "xml.php";

    $doc = @simplexml_load_file($doc) or die("Server Error: Recipe not found!");

    $title = $doc->title;

    echo $title

?>
Run Code Online (Sandbox Code Playgroud)

xml.php的内容:

<?php

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

    $dbc = mysql... //gets data from database

    echo "<!DOCTYPE..."; //xml stuff here

    echo "<title>" . $dataFromMySQL . "</title>";

?>
Run Code Online (Sandbox Code Playgroud)

数据库连接正常,XML中的DOCTYPE没问题,所以这不是问题所在.

同样,我只是在使用PHP动态生成XML时才遇到问题.如果它是.XML文件,它可以正常工作.

谁能帮我?

谢谢.

Exp*_*lls 5

simplexml_load_file将尝试实际加载该xml.php文件的PHP内容.它不会先运行该文件.你需要做一些重写或使用这个丑陋的解决方案:

ob_start();
include 'xml.php';
$xml = ob_get_clean();

$doc = simplexml_load_string($xml);
//...
Run Code Online (Sandbox Code Playgroud)

注意:我更喜欢@ lonesomeday提出的解决方案,它只需要更多的重写.