用按钮和domdocument创建和下载XML


create and download xml with button and domdocument

我想做的是创建一个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站点地图发送什么内容类型值?