Event-based parsing

Expat, being an event-based parser, processes your XML document and reports events through callback functions you specify. To give you an idea how it works, consider the following XML:

ASP is better than PHP

As you can see, the XML contains only one element, "<lie>", which is the root element. When this element is encountered by Expat, it calls the function you specified for the start of an element, passing in the parameter "lie". Then it calls the function you specified for handling character data, passing the parameter "ASP is better than PHP". Finally, it reads "</lie>", and calls the function you provided for closing elements, passing in "lie" again.

When PHP calls your function for starting element, it also passes in an array of attributes that parameter has. This is shown below:

<lie type="statistic">
ASP is 20% more popular than PHP

In that example, PHP would pass an array to your start element function containing one element - "type", with the value "statistic".

Now you have an idea of how an event-based parser works, we can take a look at how PHP implements Expat.


Want to learn PHP 7?

Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!

If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: Creating a parser >>

Previous chapter: Introduction to XML

Jump to:


Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.