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

Re: RAM, "

by Anonymous Monk
on Nov 23, 2014 at 18:19 UTC ( [id://1108169]=note: print w/replies, xml ) Need Help??


in reply to RAM, "
in thread Make a perl script by taking specific lines from a txt file

I wrote this code :
#!/usr/bin/perl use strict; use warnings; for(my $i=351; $i<400; $i++){ my $filename = '/home/nikol123/indri-5.6/runquery/trec7_4collections.t +xt'; open(my $file, '<', $filename) or die "open: $!"; while ( <$file> ) { my @lines = split(/\n/, $filename); foreach my $line (@lines) { if ($line = '<query> <type>indri</type> <number>$i</number> <text>"_" +</text> </query>') { my $param = "<parameters> <index>/home/nikol123/indri-5.6/4collections</index> print $line; <fbDocs>10</fbDocs> </parameters>"; print $param; }}}}
but it's not functional as i get this
<parameters> <index>/home/nikol123/indri-5.6/4collections</index> print <query> <type>indri</type> <number>$i</number> <text>"_"</text> +</query>; <fbDocs>10</fbDocs> </parameters>
but i want due to for loop to read and write the line that contain the variable i from the my txt file ,in order to have the according text field, for example for i=351 to have
<parameters> <index>/home/nikol123/indri-5.6/4collections</index> <query> <type>indri</type> <number>351</number> <text>Falkland petrole +um exploration</text> </query>; <fbDocs>10</fbDocs> </parameters>

Replies are listed 'Best First'.
Re^2: RAM, "
by poj (Abbot) on Nov 23, 2014 at 18:54 UTC
    Consider using an XML parser. eg XML:Twig.
    #!perl use strict; use warnings; use XML::Twig; my $filename = 'trec7_4collections.txt'; our $num; my $fh; for $num (351..354){ open $fh,'>',$num.'.xml' or die "$!"; my $twig = XML::Twig->new( twig_handlers => { query => \&query }, pretty_print=>'indented' ); $twig->parsefile($filename); $twig->flush($fh); print "Created $num.xml\n"; } sub query { my( $twig, $e) = @_; my $n = $e->first_child_text('number'); $e->cut if ($n ne $num); }
    poj

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2024-04-20 02:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found