使用按钮和 domdocument 创建和下载 xml

Posted

技术标签:

【中文标题】使用按钮和 domdocument 创建和下载 xml【英文标题】:create and download xml with button and domdocument 【发布时间】:2014-09-20 05:20:48 【问题描述】:

我要做的是创建一个 xml 文件并下载它,如果可能不保存在服务器中。

到目前为止我所做的是使用 DOMDocument 创建 xml 并将其存储在服务器中

<?php
$domTree = new DOMDocument('1.0', 'UTF-8');
$rootXML = $domTree->createElement( 'XML' );
$rootXML = $domTree->appendChild($rootXML);

$personalData = $domTree->createElement( 'PERSONAL' );
$personalData = $rootXML->appendChild($personalData);
$personalData ->nodeValue = "Alan";
$domTree->save('MyXmlFile.xml');
?>

我知道我应该使用这样的东西

<?php
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');

echo $xml_contents;
?>

但是使用 DOMDocument 我在使用它时迷路了,在此先感谢!

【问题讨论】:

如果你把这些标题调用放在你的文档中,那么 echo $domTree-&gt;saveXML(); 它应该可以解决问题 太棒了!!!!谢谢完美! 【参考方案1】:

要输出到 标准输出 - 这是 PHP 发送到浏览器的内容 - 你可以使用 PHP output stream:

header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');
$domTree->save('php://stdout');

这个原则适用于(几乎)PHP 中任何需要文件名的东西,这是一个非常好的特性。例如,与我对phpexcel to download 的回答进行比较。

它只是和你做的时候一样:

echo $domTree->saveXML();

作为echo 以及“打印”到标准输出。但对于较大的数据,流的概念更可取。

如果您想了解有关标准输出的更多信息,***对这些所谓的标准流进行了概述:

Standard streams

对于正确的 XML 内容类型,这取决于您的工作,如果您想了解更多信息,我建议您查看一下:

What Content-Type value should I send for my XML sitemap?

【讨论】:

以上是关于使用按钮和 domdocument 创建和下载 xml的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中从 DOMNode 创建 DOMDocument

格式化使用 PHP 创建的 XML 文档 - DOMDocument

如何使用 DOMDocument 编写 XML 自闭标签

PHP 4 中的新 DOMDocument()

DOMDocument 保存无法打开流:如果 https [重复],则权限被拒绝

如何使 DOMDocument 在 PHP 中编写独立 = 是?