使用XMLWriter在PHP中生成XML文件-outputMemory()函数不起作用

使用XMLWriter在PHP中生成XML文件-outputMemory()函数不起作用,php,xml,xmlwriter,Php,Xml,Xmlwriter,我正在尝试使用XMLWriter在PHP中创建和编写一个XML文件 我的代码如下: $writer = new XMLWriter(); $writer->openURI('php://output'); $writer->startDocument('1.0','UTF-8'); $writer->setIndent(4); $writer->startElement('items'); $writer->startElement("main"); $writer

我正在尝试使用XMLWriter在PHP中创建和编写一个XML文件

我的代码如下:

$writer = new XMLWriter();
$writer->openURI('php://output');
$writer->startDocument('1.0','UTF-8');
$writer->setIndent(4);
$writer->startElement('items');
$writer->startElement("main");
$writer->writeElement('user_id', 3);
$writer->writeElement('msg_count', 11);
$writer->endElement();
$writer->startElement("msg");
$writer->writeAttribute('category', 'test');
$writer->endElement();
$writer->endElement();
$writer->endDocument();
$writer->flush();

header('Content-type: text/xml');

echo $writer->outputMemory();
这似乎可以在屏幕上创建有效的XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <main>
    <user_id>3</user_id>
    <msg_count>11</msg_count>
  </main>
  <msg category="test"/>
</items>
此外,当使用以下方法创建XML文件时,输出为空:

$filename = "xml/example.xml";
$file = $writer->outputMemory();
file_put_contents($filename,$file);
文件内容也为空


如何将XML输出到文件?
outputMemory()
函数似乎没有被填充。

您可以尝试使用该代码

$filename = "xml/example.xml";
header("Content-Type: text/html/force-download");
header("Content-Disposition: attachment; filename=".$filename.".xml");
不再使用:

$filename = "xml/example.xml";
$file = $writer->outputMemory();
file_put_contents($filename,$file);

对不起,我的英语不好。

如果你使用openURI(“xml/example.xml”)怎么办?不高兴,不幸的是,我正在拔头发。
$filename = "xml/example.xml";
$file = $writer->outputMemory();
file_put_contents($filename,$file);