This function will not have any effect if the last node you output was a text node. This includes whitespace. Example:
<?php
/*
<html>
<![CDATA[ Summut nice ]]>
<p>something</p>
</html>
*/
$xw = new XMLWriter;
$xw->openMemory();
$xw->startDocument('1.0', 'ISO-8859-1');
$xw->startElement('html');
$xw->text('Comment out this line to get the CDATA back!!');
$xw->writeCData('Summut nice');
$xw->writeElement('p', 'something');
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();
?>
XMLWriter::writeCData
(No version information available, might be only in CVS)
XMLWriter::writeCData — Write full CDATA tag
Opis
Object oriented style:
XMLWriter
bool writeCData
( string $content
)
Procedural style:
bool xmlwriter_write_cdata
( resource $xmlwriter
, string $content
)
Writes a full CDATA.
Parametry
- xmlwriter
-
Jedynie dla wywołań proceduralnych. Zasób XMLWriter, który jest modfikowany. Ten zasób pochodzi, z wywołania funkcji xmlwriter_open_uri() lub xmlwriter_open_memory().
- content
-
The contents of the CDATA.
Zwracane wartości
Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.
XMLWriter::writeCData
harvey dot robin at gmail dot com
08-Sep-2007 01:57
08-Sep-2007 01:57
thesoupdragon at hotmail dot com
21-Jun-2007 11:14
21-Jun-2007 11:14
A rather strange effect with this.
UTF8 Mysql database
$xml->startElement('tablecolor2');
$xml->writeCData( $tablecolor2 );
$xml->endElement();
does not work !
but
$xml->startElement('tablecolor2');
$tablecolor2 = utf8_decode ( $val['pcolor2']);
$xml->writeCData( utf8_encode ($tablecolor2) );
$xml->endElement();
cannot explain this - but it may help someone
dave at dtracorp dot com
06-Mar-2007 10:30
06-Mar-2007 10:30
i don't know if this is a bug with the underlying c code or not, or this is by design (i'm not a big xml guy), but for me, running on fedora core 5, php 5.2.1
to get this to work, the cdata functions need to wrap the description (or whatever element the cdata should appear in)
for example.
// initiate xmlwriter object as $xw
// add header, titles, etc.
// start cdata
$xw->startCData();
// start description
$xw->startElement('description');
// write cdata
$xw->writeCData('<img src="http://php.net/images/php.gif" />');
// write the description contents
$xw->text('php logo');
// end the description element
$xw->endElement();
// end the cdata
$xw->endCData();
// end xml, and output
otherwise, i just got warnings about writing cdata in the wrong context, and no cdata would be written
