<?xml version="1.0" encoding="windows-1252"?>
<node id="102723" title="Re: XML Module decision tree?" created="2001-08-07 07:58:36" updated="2005-08-10 10:10:21">
<type id="11">
note</type>
<author id="9346">
mirod</author>
<data>
<field name="doctext">
&lt;p&gt;It might be difficult but I'll try anyway ;--).&lt;/p&gt;
&lt;p&gt;At least here are a few hints:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;document size&lt;/b&gt;: big documents excludes most tree-oriented modules, 
such as [XML::Simple], [XML::DOM] and [cpan://XML::XPath]&lt;br&gt; 
big depends on your RAM and on the expansion factor of the module, typically
between 7 an 10&lt;/li&gt;
&lt;li&gt;&lt;b&gt;type of XML&lt;/b&gt;: document-oriented XML excludes modules such as [XML::Simple]
and [cpan://XML::SimpleObjects]&lt;br&gt;those modules don't deal with mixed content 
(&lt;code&gt;&lt;p&gt;this is &lt;b&gt;mixed&lt;/b&gt; content&lt;/p&gt;&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ease of use&lt;/b&gt;: although this is higly subjective [XML::Simple] seems to be 
considered really easy to use as it completely masks the XML by loading it into
a Perl data structure (a pretty convoluted data-structure IMHO, use [Data::Dumper]!), tree-based modules ([cpan://XML::XPath], [XML::DOM], [XML::Twig])
are generally easier to use than stream-based ones, although for simple data
extraction [XML::PYX] is very convenient,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;speed&lt;/b&gt;: at the moment [XML::Parser] is the fastest (all other modules
are based on it) but modules based on libXML should be faster soon ([cpan://XML::XPath]
2.0 for example). Stream-based modules are usually faster than tree-based ones,&lt;/li&gt;
&lt;/ul&gt;

</field>
<field name="root_node">
102553</field>
<field name="parent_node">
102553</field>
</data>
</node>
