php and xml: using expat function (1)
Extensible Markup Language (Extensible Markup Language) is obviously something that most developers will want to add to their toolbox. XML is a W3C standard that is open, language-neutral, API-neutral, streaming, textual, human-readable, and a way to bring structured data to the web method. XML is a subset of SGML and is not a markup language per se, but it allows authors to define their own markup language to maintain better consistency with hierarchical data.
Nowadays, parsing XML documents with PHP is not as deeply covered a topic as I used to see on the web and elsewhere. The PHP manual already provides some very useful information on XML parsing functions, but this seems to be all the information I can find. Other languages seem to have more information and working examples about XML than PHP, so in this article I will try to do my part in changing that.
I will lead readers to experience a fairly simple XML application, which is the implementation of the news system for my website. I actually use this app on my website and it works great now. You are free to use it if you like. Okay, let’s get started!
In order to make XML parsing functions available in PHP, you need an XML-aware module on your web server. This means that you will likely have to recompile your module to support XML, see here for more information on how to do this. XML parsing functions are now actually included in expat, a SAX parser that provides simple functions for XML. Another type of parser is the DOM parser, which is easier to use. An example of this is Microsoft's MSXML parser component, which allows programmers to process nodes and elements by manipulating a tree-style object. The expat parser (or any SAX parser) allows you to parse an XML document by specifying callback functions for the different tag types when parsing the XML document. When the parser starts parsing your XML document and encounters a tag, it will call your function and your function will process the specific tag before continuing. You can think of it as an event-driven approach.
Let's look at an XML document analyzed using the 'Newsboy' class
--------------------------------- --------------------------------------------------
mynews.xml
03/31/2000
Sooo Busy !
I haven't posted anything here for a while now as I have been busy with work(have to pay those
bills!) .
I have just finished a neat little script that stores a complete record set in a session
variable after
doing an SQL query. The neat part is that an XML doc is stored in the session variable
an when paging
through the results (often near 1000!) the script displays 50 results at a time from the
XML doc in the
session variable instead of doing another query against the database. It takes a BIG load
off of the
database server.
03/25/2000
NewsBoy Class
Converted Newsboy to a PHP class to allow better abstraction (as far as PHP allows.)
Guess that means this is version 0.02 ?!
Newsboy will have a section of it's own soon on how to use and customize the class.
03/24/2000
NewsBoy is up!
I have just finished NewsBoy v0.01 !!!
It looks quite PRomising. You may ask, "" What the heck is it?!".
Well it's a simple news system for web-sites, written in PHP, that makes use of XML
for
the news data format allowing easy updating and portability between platforms.
It uses the built in expat parser for Apache.
This is just the very first version and there will be loads of improvements as the
project progresses.
03/24/2000
Romeo must Die
Saw a really cool movie today at Mann called 'Romeo must Die'
Nice fight scenes for a typical kung-fu movie with some 'Matrix' style effects.
One particular cool effect was the 'X-Ray Vision' effect that occured in various
fight scenes.
The hero, played by Jet Li, strikes a bad guy and you can see the bone in his arm
crack, in X-RAY vision.
There were some funny scenes too when Jet has to play American football with the
bad guys .
The official website for the movie is> here
The above is PHP and XML : Using the expat function (1). For more related articles, please pay attention to the PHP Chinese website (m.sbmmt.com)!