Handling CType Data With SimpleXML in PHP
If you're new to SimpleXML then the output and representation of complex XML data produced by the library can be daunting and sometimes confusing, but once you're used to it, SimpleXML is a massively useful tool for processing XML information.
When debugging other people's implementations of simpleXML however, one of the biggest issues I come across time and again is the apparent loss of CType data from the processed feed.
Luckily this is very easily remedied, but not well documented so here's how to deal with it.
PHP 5.1.0 introduced the options parameter to functions such as simplexml_load_string() which allows you to specify additional paramters to Libxml the underlying library PHP uses to interpret XML.
The default Libxml setting ignores any data in CType blocks, but you can override this behaviour by passing the LIBXML_NOCDATA option to the function.
In other words, in cases where you might usually do this to load some xml data and not find the CType fields in the resulting object:
$xml = simplexml_load_string($feed);
Doing this instead, will allow the CType fields to be added to the object and used in your scripts where you need to
$xml = simplexml_load_string($feed, NULL, LIBXML_NOCDATA);
Unfortunately the options parameter is the 3rd in the list, and 9 times out of 10 the second option (which is the name that's given to the class containing the parsed xml) doesn't need to be changed/overridden so I personally choose to pass NULL in as the second option, though you can enter whatever you like here.
It's as easy as that - I hope you found this note useful

Also Find Me On