(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
XMLWriter::openMemory -- xmlwriter_open_memory — Create new xmlwriter using memory for string output
面向对象风格
过程化风格
Creates a new XMLWriter using memory for string output.
面向对象风格: 成功时返回 TRUE
, 或者在失败时返回 FALSE
。
过程化风格: Returns a new xmlwriter 资源(resource) for later use with the
xmlwriter functions on success, FALSE
on error.
alvaro at demogracia dot com (2011-06-16 01:05:27)
A simple usage example:
<?php
header('Content-type: text/xml; charset=UTF-8');
$oXMLWriter = new XMLWriter;
$oXMLWriter->openMemory();
$oXMLWriter->startDocument('1.0', 'UTF-8');
$oXMLWriter->startElement('test');
$oXMLWriter->text('Hello, World!');
$oXMLWriter->endElement();
$oXMLWriter->endDocument();
echo $oXMLWriter->outputMemory(TRUE);
?>
prashant at prashantpatil dot net (2010-04-26 18:40:34)
Here is an simple example of using openMemory. This is particularly useful when you are handling a large amount of data and you want to split the xml creation in batches.
<?php
$batchSize = 25;
$xmlWriter = new XMLWriter();
$xmlWriter->openUri('php://output');
$xmlWriter->setIndent(true);
if($xmlWriter)
{
$xmlWriter->startDocument('1.0','UTF-8');
$xmlWriter->startElement('Books');
$memXmlWriter = new XMLWriter();
$memXmlWriter->openMemory();
$memXmlWriter->setIndent(true);
for($i=1;$i<=1000;$i++)
{
$memXmlWriter->startElement('book');
$memXmlWriter->text('book_'.$i);
$memXmlWriter->endElement();
if($i%5 == 0)
{
$batchXmlString = $memXmlWriter->outputMemory(true);
$xmlWriter->writeRaw($batchXmlString);
}
}
$memXmlWriter->flush();
unset($memXmlWriter);
$xmlWriter->endElement();
$xmlWriter->endDocument();
}
?>