XML 编写器 XML 输出
XML writer XML output
我正在开发 PostgreSQL 到 XML 的转换器。哪个应该提取不同表的值。相关代码如下:
$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument();
$query = new data_DataBaseQuery();
$xml->startElement();
.......
$xml->endElement();
如果我使用 echo htmlentities($xml->outputMemory());
,我会得到我想要的输出。
但是我想让导出的文件可以用特定的名称下载。
此时你能帮我吗?
$xml->openURI('test.xml');
...
$xml->flush();
不知何故不起作用。如果这是正确的方法,它只会将我带到一个带有 output.But 的空白页面,有人可以向我解释一下吗?
提前致谢
可以用openURI()
方式输出文件中的内容。然后你就可以下载它了。使用它代替 openMemory()
.
$xml = new XMLWriter();
$xml->openURI("test.xml");
$xml->setIndent(true);
$xml->startDocument();
$query = new data_DataBaseQuery();
$xml->startElement();
.......
$xml->endElement();
$xml->flush();
如果您想即时创建 XML 文档以提供下载,它是发送正确的 HTTP 响应 header 和制作 XML 的组合Writer 写入标准输出:
header('Content-type: text/xml');
$writer = new XMLWriter();
$writer->openURI('php://output');
$writer->setIndent(true);
$writer->startDocument();
$query = new DataBaseQuery();
$writer->startElement();
# ...
$writer->endElement();
# ...
$writer->endDocument();
$writer->flush();
这应该使浏览器 显示 XML 文件 - 这样您就可以轻松验证创建 XML 是否有效。
要使其提供下载对话框,您必须额外指定一秒 header:
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename=example.xml');
# ...
参考文献:
我正在开发 PostgreSQL 到 XML 的转换器。哪个应该提取不同表的值。相关代码如下:
$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument();
$query = new data_DataBaseQuery();
$xml->startElement();
.......
$xml->endElement();
如果我使用 echo htmlentities($xml->outputMemory());
,我会得到我想要的输出。
但是我想让导出的文件可以用特定的名称下载。
此时你能帮我吗?
$xml->openURI('test.xml');
...
$xml->flush();
不知何故不起作用。如果这是正确的方法,它只会将我带到一个带有 output.But 的空白页面,有人可以向我解释一下吗?
提前致谢
可以用openURI()
方式输出文件中的内容。然后你就可以下载它了。使用它代替 openMemory()
.
$xml = new XMLWriter();
$xml->openURI("test.xml");
$xml->setIndent(true);
$xml->startDocument();
$query = new data_DataBaseQuery();
$xml->startElement();
.......
$xml->endElement();
$xml->flush();
如果您想即时创建 XML 文档以提供下载,它是发送正确的 HTTP 响应 header 和制作 XML 的组合Writer 写入标准输出:
header('Content-type: text/xml');
$writer = new XMLWriter();
$writer->openURI('php://output');
$writer->setIndent(true);
$writer->startDocument();
$query = new DataBaseQuery();
$writer->startElement();
# ...
$writer->endElement();
# ...
$writer->endDocument();
$writer->flush();
这应该使浏览器 显示 XML 文件 - 这样您就可以轻松验证创建 XML 是否有效。
要使其提供下载对话框,您必须额外指定一秒 header:
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename=example.xml');
# ...
参考文献: