in reply to problem with xml::xpath.pm

I thought Strawberry Perl came with XML::LibXML (update: checked, it does). Why would you need XML::XPath?

XML::LibXML does XPath significantly better/faster than XML::XPath, and is actively maintained.

Replies are listed 'Best First'.
Re^2: problem with xml::xpath.pm
by veerubiji (Sexton) on Oct 14, 2011 at 07:08 UTC

    Hi, i readed one question in perlmonks, that question is extract some part of xml data and create word document. for that question they suggested xml::xpath is best so i written like that.

    #!/usr/bin/perl use warnings; use strict; use XML::XPath; # use XML::XPath::XMLParser; $file="data.xml"; my $xp = XML::XPath->new(filename => $file); open(INFO3, "+>$file.doc"); # print INFO3 "Perl Xpath\n\n"; print INFO3 "Data INFORMATION:\n\n"; foreach my $data ($xp->find('data')->get_nodelist){ print INFO3 "number:"; print INFO3 $data->find('info')->string_value."\n"; print INFO3 "information:"; } print "Converted XML file into WORD file\n\n"; print $file." WORD document generated"; close(INFO3);
    but this is not excuted ,it gives errors like as above said.i dnt know what i sholud do now ,i tried to install and i placed xpath.pm and xmlparser.pm in the perl library but still problem like "can't find xml/xpath/xmlparser.pm in strawberry/per/lib".
      i readed one question in perlmonks, that question is extract some part of xml data and create word document. for that question they suggested xml::xpath is best

      Well, perhaps "they" were wrong (where is this question?). XML::LibXML should already be installed, so read some other questions and answers (and maybe the documentation), and just use XML::LibXML

        I googled "Can't locate XML/XPath.pm" and found this so I tried to rip/replace XML::XPath with XML::LibXML and poof* H:\programmer\perl>perl find-hostname.pl Can't locate object method "find" via package "XML::LibXML" at find-hostname.pl line 9.
        use XML::LibXML; my $file = 'y:\tmp\open\HP1.xml'; my $xp = XML::LibXML->new(filename=>$file); # An XML::XPath nodeset is an object which contains the result of # smacking an XML document with an XPath expression; we'll do just # this, and then query the nodeset to see what we get. my $nodeset = $xp->find('//IPHostname');
        so I don't think the 2 libraries are equiv. :)

      it gives errors like as above said.i dnt know what i sholud do now ,i tried to insta....

      :) Yes you do, you should install the module by using cpan or running Makefile.PL as explained in Re^3: problem with xml::xpath.pm