#!/usr/bin/env ruby require "rexml/document" require "rexml/encoding" require "time" include REXML # so that we don't have to prefix everything # with REXML::... doc = Document.new doc.add(XMLDecl.new(version="1.0", encoding="UTF-8")) doc.add(gpx = Element.new("gpx")) gpx.add_attributes("xmlns" => "http://www.topografix.com/GPX/1/1") trk = gpx.add_element("trk", "name"=>"Track Log") tseg = trk.add_element("trkseg") =begin # yyyy-mm-dd,hh:mm:ss,lat,lon,[alt],[start] 2010-03-28,07:41:04,38.748604,139.769455,start =end while line=gets if /^(\d{4}-\d\d-\d\d,\s*\d\d:\d\d:\d\d),\s*([-0-9.]+),\s*([-0-9.]+)/ =~ line tm, lat, lon = Time.parse($1).localtime, $2, $3 trkpt = tseg.add_element("trkpt", {"lat" => lat, "lon" => lon}) trkpt.add(Element.new("time").add_text(tm.to_s)) end end print doc