SimpleXML is pretty much the de facto standard for dealing with XML in PHP. The biggest problem with SimpleXML is that it is a pseudo-object that you can’t print_r() or var_dump() to see what’s going on. I recently ran into a situation where it would have been super nice to dump the entire object and see what was going on. Fortunately my Google-fu was on lock and I found a wonderful project on GitHub that provides both dump functionality as well as a way to view the entire tree of the object.

The project is called simplexml_dump and was written by Rowan Collins a/k/a IMSoP and is available without license here. I have also forked the project and am planning to knock out the issues as they are a year to two years old at this point. I’ve already sent a pull request to make the project a composer package, depending on if it’s accepted I may end up just adopting the project as my own.

Usage is pretty simple, the project comes with two functions, simplexml_dump and simplexml_tree. The dump method spits out a basic summary and the tree method dumps the entire object and gives you back everything, including hints on how to access the data. When I say hints I am referring to things like ->children('') to let you how to further transverse the object.

Dump

require 'simplexml_dump.php';

simplexml_dump($simplexml_object);

Tree

require 'simplexml_tree.php';

simplexml_tree($simplexml_object);

I find the tree function to be really useful when attempting to debug larger SimpleXML objects.

The Future

As previously mentioned, depending on if my pull request(s) get accepted I may end up taking over the project and doing some things to it. Personally, I would much rather have a SimpleXML_Debug object that contains both functions and am already looking into adding a unit testing suite before making any major changes to the code.





Did you enjoy this post?

Cool if I slip into your inbox with more?
Full posts, 1-2 times per week: