Skip to content

Instantly share code, notes, and snippets.

@defanator
Created May 5, 2021 09:57
Show Gist options
  • Save defanator/e06a66a3275fd75b39c37d6a00f7b7a4 to your computer and use it in GitHub Desktop.
Save defanator/e06a66a3275fd75b39c37d6a00f7b7a4 to your computer and use it in GitHub Desktop.
Generate valid XML with repeatable sequence of data
#!/bin/sh
NUMITER=1
if [ -n "$1" ]; then
NUMITER=$1
fi
cat <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="Oregon 400t" 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 http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2009-10-17T22:58:43Z</time>
</metadata>
<trk>
<name>Example GPX Document</name>
<trkseg>
EOF
i=0
while [ $i -lt $NUMITER ]; do
cat <<EOF
<trkpt lat="47.644548" lon="-122.326897">
<ele>4.46</ele>
<time>2009-10-17T18:37:26Z</time>
</trkpt>
<trkpt lat="47.644548" lon="-122.326897">
<ele>4.94</ele>
<time>2009-10-17T18:37:31Z</time>
</trkpt>
<trkpt lat="47.644548" lon="-122.326897">
<ele>6.87</ele>
<time>2009-10-17T18:37:34Z</time>
</trkpt>
EOF
i=$((i+1))
done
cat <<EOF
</trkseg>
</trk>
</gpx>
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment