#!/usr/bin/perl -w # bbtrackerwpt - converts named trackpoints from bbtracker GPX # into waypoints # If I knew more XSLT, I'd do it that way # usage: bbtrackerwpt file.gpx > out.gpx # scruss.com - 2008/06/28 use strict; use XML::Simple; my $ref = XMLin( $ARGV[0] ); # extract all trkpt elements that have 'name' set my @waypoints = grep { $_->{name} } @{ $ref->{trk}->{trkseg}->{trkpt} }; # nasty hand-rolled GPX XML output print '', "\n", '', "\n"; foreach my $waypoint (@waypoints) { my $xml_name = $waypoint->{name}; # crudely escape non-XML chars $xml_name =~ s/\&/\&/g; $xml_name =~ s/{lat}, '" lon="', $waypoint->{lon}, '">', "\n", ' ', $waypoint->{ele}, '', "\n", ' ', "\n", ' ', $xml_name, '', "\n", ' ', "\n"; } print '', "\n"; exit;