SimpleXML is… well simple really

Share this article

I’ve mentioned SimpleXML before but it needs to be said that Sterling’s done an amazing job with it. If you find XML too hard, SimpleXML is the answer.

Zend have a new article up here (by Sterling) with a nice comparison of DOM vs. SimpleXML.

Not only is SimpleXML simple, Sterling has also come up with a neat solution for XML namespaces (something PHP4 has effectively no direct support for) and has also added XPath support, allowing you to home in on a section on an XML document and “SimpleXML” it (see here for an example).

Another cool feature is the simplexml_import_dom() function, which allows you to take any DOM Node and obtain it’s SimpleXML representation. That gives you the power of DOM (as an alternative to XPath) for traversing an XML document but the ease of SimpleXML to home in on exactly what you want. Something like…


load('somefile.xml');

$nodeList = $doc->get_elements_by_tagname('sometag');

foreach ( $nodelist as $node ) {
$simple_node = simplexml_import_dom($node);

// Do simple stuff here

}
?>

One point I need to correct, BTW, was when talking about XMLReader, I said PHP doesn’t have a “Cursor Style” API for XML – that’s actually incorrect as you can apply XPath statements to both the DOM extension and now SimpleXML, with a document that’s already been loaded.

Anyway – my guess is what’s going to “sell” PHP5 probably isn’t the new object model but rather the cool new extensions like SimpleXML, Tidy HTML, SQLite, SOAP and many more. Actions speak louder than objects…

Harry FuecksHarry Fuecks
View Author

Harry Fuecks is the Engineering Project Lead at Tamedia and formerly the Head of Engineering at Squirro. He is a data-driven facilitator, leader, coach and specializes in line management, hiring software engineers, analytics, mobile, and marketing. Harry also enjoys writing and you can read his articles on SitePoint and Medium.

Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week
Loading form