Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

procmail change subject header, wwwXxx not20, Wwwxxx.doks sas, linux raid resync after reboot, bind-address mysql multiple, sanibleone xxxx, ftp://192.168.100.100/, www.xxxcon, which comes first ob_start or session, wwwxxx/58/2010

Links

XODOX
Impressum

#1: CSV to quasi-XML

Posted on 2008-04-14 23:30:32 by Travis

Hi there,

Never written a line of Perl until now but I think it might be perfect
for this little program I need.

I have some CSV files that are given to me and I need to spit them in
a format that kind of looks like XML but I don't think it is. The
structure looks something like this:

<ADDRESSES>
<struct>
<field name="First" value="John" />
<field name="Last" value="Doe" />
<field name="City" value="San Francisco" />
</struct><struct>
<field name="First" value="Jane" />
<field name="Last" value="Johnson" />
<field name="City" value="New York City" />
</struct>
</ADDRESSES>


I don't think that's standard XML is it? If so please let me know so I
can change my google searching on the topic.

Anyway, I get CSV's that look something like this:

First,Last,City
John,Doe,San Francisco
Jane,Johnson,New York City


I'm a C/C++ person by nature but I thought this would be a good way to
get my hands in Perl and learn a bit.

Any guidance is helpful. Thanks.

Report this message

#2: Re: CSV to quasi-XML

Posted on 2008-04-14 23:34:58 by Travis

Oh also there should be a newline \n between the closing </struct> and
the next <struct>

Report this message

#3: Re: CSV to quasi-XML

Posted on 2008-04-14 23:52:00 by 1usa

Travis <travis.bowers@gmail.com> wrote in
news:1db6609e-07f3-4388-befb-9088405d95e9
@w4g2000prd.googlegroups.com
:

> Never written a line of Perl until now but I think it might be
> perfect for this little program I need.

It looks you are planning to have someone else write the lines of
Perl that might be needed rather than writing them yourself.

> I have some CSV files that are given to me and I need to spit them
> in a format that kind of looks like XML but I don't think it is.
> The structure looks something like this:
>
> <ADDRESSES>
> <struct>
> <field name="First" value="John" />
> <field name="Last" value="Doe" />
> <field name="City" value="San Francisco" />
> </struct><struct>
> <field name="First" value="Jane" />
> <field name="Last" value="Johnson" />
> <field name="City" value="New York City" />
> </struct>
> </ADDRESSES>
>
>
> I don't think that's standard XML is it?

Of course, it is.

> If so please let me know
> so I can change my google searching on the topic.

Why would searching Google be easier than writing the program in the
first place?

>
> Anyway, I get CSV's that look something like this:
>
> First,Last,City
> John,Doe,San Francisco
> Jane,Johnson,New York City
>
> I'm a C/C++ person by nature

No one is a 'C/C++ person' by nature. If you know C, this is trivial
to write. So, first write the program in C, then read
<URL:http://www.ebb.org/PickingUpPerl/>. You can then come back and
ask if you run into any problems.

> but I thought this would be a good
> way to get my hands in Perl and learn a bit.
>
> Any guidance is helpful. Thanks.

OK, here is a part of a fish:

my ($first, $last, $city) = split /,/, $line;

print <<STRUCT;
<struct>
<field name="First" value="$first" />
<field name="Last" value="$last" />
<field name="City" value="$city" />
</struct>
STRUCT

There is also:

http://csv2xml.sourceforge.net/

Sinan

--
A. Sinan Unur <1usa@llenroc.ude.invalid>
(remove .invalid and reverse each component for email address)

comp.lang.perl.misc guidelines on the WWW:
http://www.rehabitation.com/clpmisc/

Report this message

#4: Re: CSV to quasi-XML

Posted on 2008-04-14 23:52:49 by 1usa

Travis <travis.bowers@gmail.com> wrote in
news:7f4a5bd7-8002-4b8e-b91d-08288e1ff51c@u36g2000prf.google groups.co
m:

> Oh also there should be a newline \n between the closing </struct>
> and the next <struct>

I knew I was making a mistake replying. *Sigh*. Just confirmed my
expectations.

Sinan

--
A. Sinan Unur <1usa@llenroc.ude.invalid>
(remove .invalid and reverse each component for email address)

comp.lang.perl.misc guidelines on the WWW:
http://www.rehabitation.com/clpmisc/

Report this message

#5: Re: CSV to quasi-XML

Posted on 2008-04-14 23:55:53 by Travis

On Apr 14, 2:52=A0pm, "A. Sinan Unur" <1...@llenroc.ude.invalid> wrote:
> Travis <travis.bow...@gmail.com> wrote in
> news:1db6609e-07f3-4388-befb-9088405d95e9
> @w4g2000prd.googlegroups.com
> :
>
> > Never written a line of Perl until now but I think it might be
> > perfect for this little program I need.
>
> It looks you are planning to have someone else write the lines of
> Perl that might be needed rather than writing them yourself.
>
>
>
> > I have some CSV files that are given to me and I need to spit them
> > in a format that kind of looks like XML but I don't think it is.
> > The structure looks something like this:
>
> > <ADDRESSES>
> > <struct>
> > =A0 =A0 <field name=3D"First" value=3D"John" />
> > =A0 =A0 <field name=3D"Last" value=3D"Doe" />
> > =A0 =A0 <field name=3D"City" value=3D"San Francisco" />
> > </struct><struct>
> > =A0 =A0 <field name=3D"First" value=3D"Jane" />
> > =A0 =A0 <field name=3D"Last" value=3D"Johnson" />
> > =A0 =A0 <field name=3D"City" value=3D"New York City" />
> > </struct>
> > </ADDRESSES>
>
> > I don't think that's standard XML is it?
>
> Of course, it is.
>
> > If so please let me know
> > so I can change my google searching on the topic.
>
> Why would searching Google be easier than writing the program in the
> first place?
>
>
>
> > Anyway, I get CSV's that look something like this:
>
> > First,Last,City
> > John,Doe,San Francisco
> > Jane,Johnson,New York City
>
> > I'm a C/C++ person by nature
>
> No one is a 'C/C++ person' by nature. If you know C, this is trivial
> to write. So, first write the program in C, then read
> <URL:http://www.ebb.org/PickingUpPerl/>. You can then come back and
> ask if you run into any problems.
>
> > but I thought this would be a good
> > way to get my hands in Perl and learn a bit.
>
> > Any guidance is helpful. Thanks.
>
> OK, here is a part of a fish:
>
> my ($first, $last, $city) =3D split /,/, $line;
>
> print <<STRUCT;
> <struct>
> =A0 =A0 <field name=3D"First" value=3D"$first" />
> =A0 =A0 <field name=3D"Last" value=3D"$last" />
> =A0 =A0 <field name=3D"City" value=3D"$city" />
> </struct>
> STRUCT
>
> There is also:
>
> http://csv2xml.sourceforge.net/
>
> Sinan
>
> --
> A. Sinan Unur <1...@llenroc.ude.invalid>
> (remove .invalid and reverse each component for email address)
>
> comp.lang.perl.misc guidelines on the WWW:http://www.rehabitation.com/clpm=
isc/

lol thanks for the taste. i appreciate it.

Report this message

#6: Re: CSV to quasi-XML

Posted on 2008-04-15 14:33:37 by cartercc

On Apr 14, 5:30 pm, Travis <travis.bow...@gmail.com> wrote:
> I have some CSV files that are given to me and I need to spit them in
> a format that kind of looks like XML but I don't think it is.

The pseudocode for your little problem looks like this:

open infile for reading;
open outfile for writing;
while outfile is open;
read each line;
remove newline character;
split on delimiter into data structure;
join into string representation of output;
print string to your outfile;
close infile;
close outfile;

The functions you will need are open, close, while, chomp, split,
join, print (or printf or sprintf), and possibly some data structure
specific functions depending on your approach. Personally, I would use
an array.

> The
> structure looks something like this:
>
> <ADDRESSES>
> <struct>
> <field name="First" value="John" />
> <field name="Last" value="Doe" />
> <field name="City" value="San Francisco" />
> </struct><struct>
> <field name="First" value="Jane" />
> <field name="Last" value="Johnson" />
> <field name="City" value="New York City" />
> </struct>
> </ADDRESSES>

This is well formed XML. You might want to know what 'well formed'
means.

> I'm a C/C++ person by nature but I thought this would be a good way to
> get my hands in Perl and learn a bit.

Good. As you will discover, Perl is optimized to perform a pretty
narrow range of tasks, but this is an ideal job for Perl. In my job
(database manager) I use Perl for about 80% of everything I do, most
of which is very similar to your problem. I have used C as well, but I
don't get to do much bit twiddling.

CC

Report this message

#7: Re: CSV to quasi-XML

Posted on 2008-04-16 01:23:54 by Travis

Thanks all for the wonderful help.

Report this message