I am working on reading the contents of xml files. However, I do not want to use the xml parser module. My task is to search within a xml file and look to see if the file contains a particular words.
Example:
A file may have a tag
Thanks for your assistance.
Edman
Very interesting question and nice home work. Where is the code to assist you? You just start with perlopen, perlfunc and perlre.
Also take a look at node 172086.
Prasad
Sounds to me like you're looking for XPath. See XML::XPath or XML::LibXML.
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
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 node 46601 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? ;--)
OR you could distribute XML::Parser with your code.
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.
perlmonks.org content © perlmonks.org and davorg, duff, gzayzay, izut, mirod, pajout, prasadbabu
prlmnks.org © 2006 edmund von der burg (eccles & toad)
v 0.03