in reply to Re: newbie regex question: substituting repeating occurences for different replacements
in thread newbie regex question: substituting repeating occurences for different replacements
Just to make a minor point (plus get my first post in for 2003! ;)), the original poster's data has semicolons as the separating character instead of the default comma, which can easily be specified in Text::CSV_XS's sep_char attribute in the new() method. Hope I'm not doing anyone's homework:
Output:#!/usr/bin/perl -w use strict; use Text::CSV_XS; my ( $csv, $xml ); $csv = Text::CSV_XS->new( { 'sep_char' => ';' } ); $xml = ''; while( <DATA> ) { chomp; if ( $csv->parse( $_ ) ) { my ( $line, $n, @fields, $field ); $line = '<row>'; $n = 1; @fields = $csv->fields(); foreach $field ( @fields ) { $line .= "<col$n>$field</col$n>"; $n++; } $xml .= $line . "</row>\n"; } else { print "parse() failed on this line: " . $csv->error_input() . +"\n"; # die? } } print $xml; __DATA__ a;b;c;d;e f;g;h;i j;k l m;n;o
$ ./main.pl <row><col1>a</col1><col2>b</col2><col3>c</col3><col4>d</col4><col5>e</col5></row> <row><col1>f</col1><col2>g</col2><col3>h</col3><col4>i</col4></row> <row><col1>j</col1><col2>k</col2></row> <row><col1>l</col1></row> <row><col1>m</col1><col2>n</col2><col3>o</col3></row>There's probably an XML package out there should your required output become more complex or you want to guarantee that you are using a standardized and optimized solution.
Peace,
Purdy
|
---|
Replies are listed 'Best First'. | |
---|---|
(jeffa) 3Re: substituting repeating occurences ... (Text::CSV_XS / CGI.pm version)
by jeffa (Bishop) on Jul 09, 2003 at 21:34 UTC |
In Section
Seekers of Perl Wisdom