gzayzay has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Reading Xml files
by mirod (Canon) on Mar 02, 2006 at 15:17 UTC
    I do not want to use the xml parser module x2

    Why? (And what is "the xml parser module" (there are quite a few modules in the XML namespace, several of them being parsers)).

    Sorry to sound like a purist, but there are very good reasons to use an XML parser to process XML (see On XML parsing for example). The usual reasons NOT to use one are speed, which can be a good reason, problems with installing the modules, which can often be solved, and just wanting a quick'n dirty solution, which is often not a good reason, as an XML processing module can be easier to use than writing regexps. And besides if I don't try to sell (well, give...) you an XML processing module, who will? ;--)

      I will like to share this code with other users. thus if the person don't have XML::Parser installed the code will not work. To me, except the XML::Parser is a core module, every other person using my code will have to install it before getting my code to work as desired. I am trying to have a lot of flexibility in code so that there are not a lot of constrains to get my code to work. that is why I don't want to use the XML::Parser. I will love it to make my task easier but that will make my script to not be as portable

        XML::Parser is pre-installed with Activestate Perl (it is used by ppm), so even if it's not core, it comes pre-installed on the one platform where installation can be a problem. Note that XML::Twig, which doesn't come with Activestate perl is not too hard to install, as you could just drop the Twig.pm file in the module XML directory. Of course it is a pretty big file these days at nearly 400K. I think that XML::Simple is also a single file, so that is an other option. Oh, and remember that XML::Parser needs expat installed (once again installed with Activestate Perl, and easy enough to install on most other systems)

        There are also nearly-complete XML parsers in pure perl: XML::SAX::PurePerl and XML::Parser::Lite, which comes with SOAP::Lite. XML::SAX::PurePerl requires you to then install some SAX modules to do anything interesting with it, but XML::Parser::Lite emulates quite well XML::Parser, so you could ship it with your application and use it as a fallback if XML::Parser is not available. It doesn't parse DTDs, which may or may not be a problem.

        You can distribute your application with all required modules with PAR. A tutorial can be found here.

        Igor 'izut' Sutton
        your code, your rules.

        OR you could distribute XML::Parser with your code.

Re: Reading Xml files
by davorg (Chancellor) on Mar 02, 2006 at 15:15 UTC

      Or xml_grep2:

      xml_grep2 -l '//edman[.="Hello"]' *.xml
Re: Reading Xml files
by prasadbabu (Prior) on Mar 02, 2006 at 15:13 UTC
      Thanks for the reference page. It help me learn a lot of Do's and Don'ts
Re: Reading Xml files
by pajout (Curate) on Mar 02, 2006 at 15:12 UTC
    Of course, you can treat these files as a normal text files and use regexps to find what do you want... But I forewarn to use regexps in this job. I am afraid that you really want some xml parser, which helps you with entities, for instance...