![]() 2. Introduction to XML |
![]() Table of Content |
![]() 4. First Examples |
3. Introduction to XML::Twig
3.1 XML::Parser
XML::Parser, first developped by Larry Wall and now supported by Clark Cooper, is the basis of most other XML modules. It includes a non-validating parser, Expat, written by James Clark, who amongst other feats also wrote the nsgmls parser for SGML.
XML::Parser allows calling software to set handlers on parsing events. Those events include start tags (and XML::Parser gives the name of the tag and the attributes), end tags, text, processing instructions etc...
3.2 XML::Twig
XML::Twig is a sub-class of XML::Parser that allows higher level processing of XML. XML::Twig offers a tree interface to a document, both once the document has been completely parsed and during the parsing by allowing handlers to be defined on elements. Additional methods help managing the resources needed by XML::Twig.
A whole bunch of methods can be used on elements in the twig, to navigate it, transform it, create new elements...
3.3 Why use XML::Twig
XML:Twig is only one of the dozen or so Perl modules that process XML. Other popular ones are XML::DOM, XML::Simple, XML::PYX, XML::Grove or just plain vanilla XML::Parser.
So why would you use XML::Twig?
- you need to process huge documents efficiently,
- PYX is not quite powerful enough,
- the XML data is too complex for XML::Simple to handle,
- the processing is hard to write in XML::Parser,
- the document is too big to load conveniently in XML::DOM,
- XSLT is a pain to write.
XML::Twig uses a tree-based processing model, you can control how much of the tree you want to load at once in memory and it is very perlish, up to TIMTOWTDI and DWIM.
![]() 2. Introduction to XML |
![]() Table of Content |
![]() 4. First Examples |