#!/usr/bin/perl -w ########################################### # tracks2yml - gpx XML to yml converter # Mike Schilli, 2006 (m@perlmeister.com) ########################################### use strict; use Sysadm::Install qw(:all); use XML::Twig; use Date::Parse; use YAML qw(DumpFile); my $twig= XML::Twig->new( TwigHandlers => { "trkpt" => \&handler, } ); my @points = (); $twig->parsefile("tracks.xml"); DumpFile("tracks.yml", \@points); ########################################### sub handler { ########################################### my($t, $trkpt)= @_; my $lat = $trkpt->att('lat'); my $lon = $trkpt->att('lon'); my $ele = $trkpt->first_child( 'ele')->text(); my $isotime = $trkpt->first_child( 'time')->text(); my $time = str2time($isotime); push @points, { lat => $lat, lon => $lon, ele => $ele, time => $time, isotime => $isotime, }; }