在PHP中将格式化的xml保存到文件中

时间:2017-01-19 20:16:39

标签: php xml domdocument

我知道这里有很多问题,但我试过的每个答案都没有解决我的问题

问题

我将xml保存在一个字符串上,我希望将它保存到一个文件中但不希望xml在一行中我想在pritty print中写入文件

此外还有一个更大的问题,而不是这个"显示此",因为此文件将加载到不同的网站中,我无法{{1} }

请注意,"变量的$content不是"

我知道"并不重要,但为了更容易分析生成的xml文件,我需要将xml格式化

这就是我正在使用的

\n

我也试过

$dirname = "temp/" . uniqid(); mkdir($dirname); $filename = $dirname . "/gen.xml"; $doc = new DomDocument($content); $doc->preserveWhiteSpace = false; $doc->formatOutput = true; $doc->save($filename); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Length: ". filesize("$filename").";"); header("Content-Disposition: attachment; filename=gen.xml"); header("Content-Type: application/octet-stream; "); header("Content-Transfer-Encoding: binary"); readfile($filename); $fh = fopen($filename, 'a'); fclose($fh); unlink($filename); rmdir($dirname); header("Content-type: text/xml");

1 个答案:

答案 0 :(得分:2)

DomDocument的{​​{3}}不接受xml字符串 - 而是可选版本和编码。

您可能想要的是加载$content xml字符串:

$doc = new DOMDocument();

$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$doc->loadXML($content);

$doc->save($filename);