Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^3: Loading a Local XML File

by poj (Abbot)
on Aug 27, 2019 at 15:13 UTC ( [id://11105124]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Loading a Local XML File
in thread Loading a Local XML File

Use parse() method for file handle, not parsefile()

#$parser->parsefile($fileStream); $parser->parse($fileStream);
or with filename using parsefile()
$parser->parsefile('sample_xml.xml');
poj

Replies are listed 'Best First'.
Re^4: Loading a Local XML File
by novicepl (Initiate) on Aug 27, 2019 at 15:21 UTC
    Hi poj, Getting following error either way i.e. $parser->parse($fileStream); or $parser->parsefile('sample_xml.xml'); Undefined subroutine &main::hdl_def called at /usr/lib64/perl5/vendor_perl/XML/Parser/Expat.pm line 470.

      You need to write the handler subroutines. What are you trying to extract from the XML ? Consider using XML::Twig

      #!/perl/bin/perl use strict; use warnings; use XML::Parser; printf "OS %s Perl %s XML::Parser %s\n",$^O,$^V,$XML::Parser::VERSION; my $parser = new XML::Parser ( Handlers => { # Creates our parser object Start => \&hdl_start, End => \&hdl_end, Char => \&hdl_char, Default => \&hdl_def, } ); $parser->parsefile('sample_xml.xml'); my $str; sub hdl_start { $str = ''; }; sub hdl_end { my ($p, $elt) = @_; print "$elt = $str\n" if $elt eq 'parameter'; }; sub hdl_char { $str .= $_[1]; }; sub hdl_def {};
      poj

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11105124]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (1)
As of 2024-04-24 16:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found