我一直在从事一个在 XML 文件中显示数据的项目。 (这有点像 API)。我知道如何用 PHP 解析 XML,以及如何用 PHP 制作 XML 文件,但它们不能一起工作。 :)
基本上,我有两个文件:parse.php
和 xml.php
。
xml.php
从 MySQL 数据库中获取信息,并将其输出为 XML。
parse.php
加载并解析 xml.php
并将其输出为 HTML。
如果我运行 parse.php
,它不会加载 xml.php
。但是,如果我复制输出的 XML(来自 xml.php
)并将其保存为 xml.xml 文件(并将 parse.php
中的文件名更改为“xml.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
?>
xml.php 的内容:
<?php
header("Content-type: text/xml");
$dbc = mysql... //gets data from database
echo "<!DOCTYPE..."; //xml stuff here
echo "<title>" . $dataFromMySQL . "</title>";
?>
数据库连接正常,XML中的DOCTYPE没问题,所以不是问题。
同样,我只有在使用 PHP 动态生成 XML 时才会遇到问题。如果它是一个 .XML 文件,它工作正常。
谁能帮帮我?
谢谢。
最佳答案
simplexml_load_file
将尝试实际加载 xml.php
文件的 php 内容。它不会首先运行该文件。您需要重写或使用这个丑陋的解决方案:
ob_start();
include 'xml.php';
$xml = ob_get_clean();
$doc = simplexml_load_string($xml);
//...
注意:我更喜欢@lonesomeday 提出的解决方案,它只需要更多的重写。
关于php - 将 PHP 文件解析为 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742985/