Структура gpx-трека выглядит примерно таким образом. Внутри тега <trkpt> могут быть также time, ele.
<?xml version="1.0" encoding="utf-8"?>
<gpx>
<trk>
<name>Track</name>
<trkseg>
<trkpt lat="87.89289951324463" lon="41.97881025520548"></trkpt>
<trkpt lat="87.7565735578537" lon="41.85182988575514"></trkpt>
</trkseg>
</trk>
</gpx>
Приведенный ниже пример perl-кода использует библиотеку XML::LibXML. Он парсит трек в формате gpx и достает координаты точек.
use XML::LibXML;
use Data::Dumper;
my $xml = XML::LibXML->new->parse_file('file.gpx');
my $root = $xml->getDocumentElement;
my @coords;
foreach my $pt ($root->getElementsByTagName('trkpt')) {
my($lat) = $pt->findvalue('@lat');
my($lon) = $pt->findvalue('@lon');
push @coords, ($lon.','.$lat);
}
print Data::Dumper::Dumper \@coords;