When I run the below mentioned code I don't get anything on stdout, I don't understand why parXML function not parsing each file and outputting data, undermentioned code this is just a part of whole script. Also my script does not shows any syntax error,it runs through with no output,Please help thanks!!

I want to output specific rows from xml stored in multiple files

I have stored files in an array

@array = `ls file* | awk '{print \$0}'`;

result of above code I am getting

file1 file2

Now I pass each file using foreach loop to parXML function

foreach (@array) { parXML($_); }

parXML function

sub parXML { my $file = shift; #print "$file\n"; my $twig=XML::Twig->new(twig_handlers => {IP_ADDRESS => \&ip, COM= +>\&co}); $twig->set_pretty_print('indented'); $twig->parsefile($file); sub ip { my($twig, $ip)= @_; print "Target:".$ip->text."\n"; twig->print; $twig->purge; } sub co { my($twig, $co)= @_; $co->print; print "\n\n"; $twig->purge; } }

xml stored in file1 and file2

<REP>abc</REP> <ING>ip</ING> <IP_ADDRESS>192.168.67.16</IP_ADDRESS> <COM> <DS> <N>1</N> </DS> </COM> <LIST>ac</LIST>
<REP>ab</REP> <ING>ip</ING> <IP_ADDRESS>192.168.67.110</IP_ADDRESS> <COM> <DS> <N>5</N> </DS> </COM> <LIST>gn</LIST>

Result I am looking for in output

<IP_ADDRESS>192.168.67.16</IP_ADDRESS> <COM> <DS> <N>1</N> </DS> </COM>
<IP_ADDRESS>192.168.67.110</IP_ADDRESS> <COM> <DS> <N>5</N> </DS> </COM>

In reply to Processing xml data in multiple files using XML::Twig and outputting in a file by pinnacle

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.