Hello Samuel,
Here comes a sucsessful result:
function [route,lat,lon,n]=gpx2scilab(gpxpath)
//Extracting geographical coordinates and route point names from a gpx file
//containing a route with routepoints as defined by the rte element
//gpxpath: full path of the gpx file (string 1 x 1).
//The first two lines of the file have to be
//<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
//<gpx ...>
//The last line of the file has to be
//</gpx>
//route: All results compiled in a n x 4 string matrix
//lat: Geographical latitude/° (numerical row vector))
//long: Geographical longitude/° (numerical row vector))
//n: number of route points
//gpx2scilab() requires Scilab Version 6.
doc=xmlRead(gpxpath);
Coo=getPreferencesValue("/gpx/rte/rtept", ["lat", "lon"],doc);//string
matrix n x 2
xp = xmlXPath(doc, "/gpx/rte/rtept/name");//XMLSet
s = size(xp)
Name=[]
for i=1:s(2)
Name=[Name;xmlDump(xp(i))]
end
xmlDelete(doc)
route=[Name Coo string(1:s(2))']
lat=strtod(Coo(:,1))//double, °
lon=strtod(Coo(:,2))//double, °
n=length(lat)//number of route points
endfunction
Thanks again for your help.
Regards, Jens
______________________________________________________________________________
Am 22.05.2017 08:19, schrieb Jens Simon Strom:
Hello Samuel,
I tried the script
doc=xmlRead("G:/Daten/Navigation/gpxArchiv/testfile.gpx")
recent =getPreferencesValue("/gpx/rte/body/rtept", ["lat","lon"],doc)
xmlDelete(doc)
The file is as below.
The result is:
doc =
XML Document
url: file:///G:/Daten/Navigation/gpxArchiv/testfile.gpx
root: XML Element
!--error 10000
getPreferencesValue: Invalid XPath request.
at line 39 of function getPreferencesValue called by :
recent = getPreferencesValue("/gpx/rte/rtept", ["lat","lon"],doc)
at line 55 of exec file called by :
exec('G:\Daten\Navigation\eTrex10_GPX_Generator.sce', -1)
What am I doing wrong here?
Regards, Jens
-----------------------------------------------------------------------------
Am 22.05.2017 01:31, schrieb Jens Simon Strom:
Great, I will try this soon.
Regards, Jens
--------------------------------------------------------------------------
Am 22.05.2017 01:14, schrieb Samuel Gougeon:
Hello,
Le 22/05/2017 à 00:32, Jens Simon Strom a écrit :
Hi,
I want to extract lat, lon and <rte>-name from gmx files. See the
following reduced example:
-----------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><gpx
xmlns="http://www.topografix.com/GPX/1/1" creator="MEDIA-TOURS"
version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1
http://www.topografix.com/GPX/1/1/gpx.xsd">
<!--
line of comments
...
line of comments
-->
<rte>
<name>route_1</name>
<rtept lat="52.00424932154729" lon="8.875365257263184">
<name>1 Start</name>
</rtept>
<rtept lat="52.00319255643224" lon="8.878369331359863">
<name>11 station</name>
</rtept>
<rtept lat="52.00271700399025" lon="8.879871368408203">
<name>111 destination.</name>
</rtept>
</rte>
</gpx>
------------------------------------------------------------------------------------------------------------------------------------
lat and lon should be collected as numerical colum vectors, name
as a colum of strings.
Which commands would you recommend? Is reading by mgetl and
retrieving by regexp recommendable?
xmlXPath() is made for parsing xml documents and extracting selected
informations.
getPreferencesValue() may also help. It is based on xmlXPath()
HTH
Samuel
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users