Xml newbie

Okay, so I am scraping the FAA site and keeping track of some airplanes.

A lot of the time I get a tail number and I have it already, so I am
going to store the important information in a file that is
{tailnumber}.xml

That way I can add some of my own information (email address of owner,
airport last sighted).

I've never written any xml. But apparently there are gems I could add
to my Ruby installation which would let me write it.

Suggestions for where to start?

I assume I'll wind up with a file that has
<model>DA20</model>
<serial>408.21</serial>

and I can say things like
  serial = xml('serial')
and
  xml(serial) = '408.21'
right?

I can picture writing these things, but I bet someone has already done the work.

Thanks,
--Colin

You'll want to take a look at HPricot[0] and/or XML Builder[1]

[0] http://code.whytheluckystiff.net/hpricot/
[1] http://rubyforge.org/projects/builder

···

On 6/22/07, Colin Summers <bladenut@gmail.com> wrote:

Okay, so I am scraping the FAA site and keeping track of some airplanes.

A lot of the time I get a tail number and I have it already, so I am
going to store the important information in a file that is
{tailnumber}.xml

That way I can add some of my own information (email address of owner,
airport last sighted).

I've never written any xml. But apparently there are gems I could add
to my Ruby installation which would let me write it.

Suggestions for where to start?

Why bother with xml at all? For something this small YAML would work
just as well and requires less work too.

require 'yaml'
planes = [ {:tailnumber => 'N1234Z', :model => 'DA20', :serial =>
'408.21'},
           {:tailnumber => 'N1234AZ', :model => 'magic happy
plane', :serial => '42'} ]
#write planes
File.open("planes.yaml", "w") { |f| f.puts tree.to_yaml }

#read planes
planes = YAML.load(File.open("planes.yaml"))
puts planes.first[:serial]
#408.21

···

On Jun 22, 7:27 pm, "Colin Summers" <blade...@gmail.com> wrote:

Okay, so I am scraping the FAA site and keeping track of some airplanes.

A lot of the time I get a tail number and I have it already, so I am
going to store the important information in a file that is
{tailnumber}.xml

That way I can add some of my own information (email address of owner,
airport last sighted).

I've never written any xml. But apparently there are gems I could add
to my Ruby installation which would let me write it.

Suggestions for where to start?

I assume I'll wind up with a file that has
<model>DA20</model>
<serial>408.21</serial>

and I can say things like
  serial = xml('serial')
and
  xml(serial) = '408.21'
right?

I can picture writing these things, but I bet someone has already done the work.

Thanks,
--Colin

Errr tree.to_yaml should of course be planes.to_yaml. It's late :slight_smile:

···

On Jun 23, 12:16 am, "cardboar...@gmail.com" <cardboar...@gmail.com> wrote:

On Jun 22, 7:27 pm, "Colin Summers" <blade...@gmail.com> wrote:

> Okay, so I am scraping the FAA site and keeping track of some airplanes.

> A lot of the time I get a tail number and I have it already, so I am
> going to store the important information in a file that is
> {tailnumber}.xml

> That way I can add some of my own information (email address of owner,
> airport last sighted).

> I've never written any xml. But apparently there are gems I could add
> to my Ruby installation which would let me write it.

> Suggestions for where to start?

> I assume I'll wind up with a file that has
> <model>DA20</model>
> <serial>408.21</serial>

> and I can say things like
> serial = xml('serial')
> and
> xml(serial) = '408.21'
> right?

> I can picture writing these things, but I bet someone has already done the work.

> Thanks,
> --Colin

Why bother with xml at all? For something this small YAML would work
just as well and requires less work too.

require 'yaml'
planes = [ {:tailnumber => 'N1234Z', :model => 'DA20', :serial =>
'408.21'},
           {:tailnumber => 'N1234AZ', :model => 'magic happy
plane', :serial => '42'} ]
#write planes
File.open("planes.yaml", "w") { |f| f.puts tree.to_yaml }

#read planes
planes = YAML.load(File.open("planes.yaml"))
puts planes.first[:serial]
#408.21

Oh, for some reason I thought the OP was scraping XML files and wanted
to keep the structure intact but just change parts. If all that is
needed is data persistence, YAML is a better choice for sure.

···

On 6/23/07, cardboard42@gmail.com <cardboard42@gmail.com> wrote:

On Jun 22, 7:27 pm, "Colin Summers" <blade...@gmail.com> wrote:
> Okay, so I am scraping the FAA site and keeping track of some airplanes.
>
> A lot of the time I get a tail number and I have it already, so I am
> going to store the important information in a file that is
> {tailnumber}.xml
>
> That way I can add some of my own information (email address of owner,
> airport last sighted).
>
> I've never written any xml. But apparently there are gems I could add
> to my Ruby installation which would let me write it.
>
> Suggestions for where to start?
>
> I assume I'll wind up with a file that has
> <model>DA20</model>
> <serial>408.21</serial>
>
> and I can say things like
> serial = xml('serial')
> and
> xml(serial) = '408.21'
> right?
>
> I can picture writing these things, but I bet someone has already done the work.
>
> Thanks,
> --Colin

Why bother with xml at all? For something this small YAML would work
just as well and requires less work too.