Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

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 cooling their heels in the Monastery: (5)
As of 2018-06-21 18:43 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (118 votes). Check out past polls.