So if I'm looking to parse certain attributes out of an XML tree, if I use SAX, it seems that I would need to keep track of state internally. E.g., if I have a tree like <head> <a> <b></b> </a> <a> <b></b> </a> </head> and say I'm interested in all that's between <b> underneath any <a>, I'd need to have a state machine that looked for an <a> followed by a <b>. If I'm doing that, though, it seems like I should just start using a DOM parser instead? Thanks for any insight, Waynn On Mon, May 12, 2008 at 1:29 AM, David Otton <phpmail@xxxxxxxxxxxxxxxxxxxxxxx> wrote: > 2008/5/12 Waynn Lue <waynnlue@xxxxxxxxx>: > > > What's the best way to pull down XML from a URL? fopen($URL), then > > using xml_parse? Or should I be using XML_Parser or SimpleXML? > > XML parsers fall into two general camps - DOM and SAX. DOM parsers > represent an entire XML document as a tree, in-memory, when they are > first instantiated. They are generally more memory-hungry and take > longer to instantiate, but they can answer queries like "what is the > path to this node" or "give me the siblings of this node". > > SAX parsers are stream- or event-based, and are much more lightweight > - they parse the XML in a JIT fashion, and can't answer much more than > "give me the next node". > > If you just need the data, a SAX parser will probably do everything > you need. If you need the tree structure implicit in an XML document, > use a DOM parser. Expat, which XML Parser > (http://uk3.php.net/manual/en/book.xml.php) is based on, is a SAX > parser. DOM XML (http://uk3.php.net/manual/en/book.domxml.php) is, > obviously, a DOM parser. I don't know, off the top of my head, which > camp SimpleXML falls into. > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php