我想做的是创建一个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我迷失在谁使用它,提前感谢!
要输出到标准输出 -这是PHP发送给浏览器的-您可以使用PHP输出流:
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');
$domTree->save('php://stdout');
这个原则适用于(几乎)PHP中任何需要文件名的东西,这是一个非常好的特性。例如,比较我的回答phpexcel下载。
这和你所做的是一样的:
echo $domTree->saveXML();
作为echo
也"打印"到标准输出。但是对于更大的数据,流的概念更可取。
如果你想了解更多关于标准输出的信息,维基百科有一个关于这些所谓的标准流的概述:
- <
- 标准流/gh>
对于正确的XML内容类型,这取决于您做什么,如果您想了解更多,我建议您查看一下:
- 我应该为我的XML站点地图发送什么内容类型值?