Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

remove node information by searching tag element.

by veerubiji (Sexton)
on Nov 22, 2011 at 17:46 UTC ( #939501=perlquestion: print w/replies, xml ) Need Help??
veerubiji has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks, I have one XML file like this

<datainfo> <data> <number>12</number> <branch>electronics</branch> <details> ....... </details> </data> <data> <number>23</number> <branch>computers</branch> <details> ....... </details> </data> <data> <number>12</number> <branch>science</branch> <details> ....... </details> </data> </datainfo>

I am reading that xml file using XML::LibXML and printing like this

#!/usr/bin/perl use warnings; use strict; use XML::LibXML::Reader; my $file="data.xml"; my $reader = XML::LibXML::Reader->new( IO => $file ) or die ("unab +le to open file"); while ($reader->nextElement( 'data' ) ) { my $info = $reader->readOuterXml(); } $all=$all.$info; } print $all;

Above code is not working It printing only <infolist> and </info> its not printing any data between that. I tried to extract data nodes from xml file and eliminate if any duplicate nodes by searching nuber tag and print this information into string.because I need to use this string some other process.

expected output

<datainfo> <data> <number>12</number> <branch>electronics</branch> <details> ....... </details> </data> <data> <number>23</number> <branch>computers</branch> <details> ....... </details> </data> </datainfo>


Replies are listed 'Best First'.
Re: Remove node information by searching tag element
by MidLifeXis (Monsignor) on Nov 22, 2011 at 18:00 UTC

    This is a FAQ (see the third example). You can find this with perldoc -q unique from your command line.


      Actually sorry for not providing full information now I edited so please help me with that. I am not storing in a hash.

        The basic process is still the same. You record what you have seen and make processing decisions based on that data.

        doSomething($data) unless $seen{$key}++

        Providing appropriate values for $key, doSomething(), and $data are left as an exercise for the reader.

        Update: Perhaps I am misunderstanding your question. Please post what you expect to see as output given the provided input data.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://939501]
Approved by philipbailey
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2018-03-24 01:29 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (297 votes). Check out past polls.