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();
}
?>
XMLWriter::openMemory
(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
XMLWriter::openMemory — Crea un nuevo xmlwriter usando memoria parala salida de la cadena
Descripción
Estilo orientado a objetos
bool XMLWriter::openMemory
( void
)
Estilo por procesos
resource xmlwriter_open_memory
( void
)
Crea una nueva XMLWriter usando memoria para la salida de la cadena.
Parámetros
Valores devueltos
Estilo orientado a objetos: Devuelve TRUE en caso de éxito o FALSE en caso de error.
Estilo por procesos: Devuelve un nuevo recurso para luego usarlo con las funciones de xmlwriter en éxito, y FALSE en error.
prashant at prashantpatil dot net
27-Apr-2010 01:40
