My main presence on this site seems to be correcting people's misunderstandings of PHP's SimpleXML module.

People jump through tortuous hoops, switching to DOM, using XPath, setting LIBXML settings, and 90% of the time, this is because they don't know how to use it, not because it doesn't work.

The top 3:

  • Never print_r() or var_dump() SimpleXML data, or you will be more confused than when you started. I have written some debug functions to use instead.
  • There is nothing wrong with CDATA sections in SimpleXML. Just always cast to string.
  • Namespaces are really easy - just use the ->children() method.