Re: Parsing GPX with SimpleXML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yeah I tried that. Didn't work. May I ask what XML extension you're using?

On Wed, Dec 18, 2019 at 5:07 AM Stefan A. <acid24@xxxxxxxxx> wrote:
This worked for me on PHP 7.2

foreach ($gpx->trk as $trk) {
    foreach ($trk->trkseg as $seg) {
        foreach ($seg->trkpt as $pt) {
            echo "lat: ", $pt["lat"], "   lon: ", $pt["lon"];
            echo "    ele: ", $pt->ele, "   time: ", $pt->time;
            echo "    extensions: c: ", $pt->extensions->{'geotracker:meta'}['c'] ?? 'N/A', " s: ", $pt->extensions->{'geotracker:meta'}['s'] ?? 'N/A', "\n";
        }
    }
}

On Wed, Dec 18, 2019 at 1:04 PM Aziz Saleh <azizsaleh@xxxxxxxxx> wrote:

On Tue, Dec 17, 2019 at 10:56 PM Ashley M. Kirchner <kirash4@xxxxxxxxx> wrote:
Hi folks,

I'm having a hard time figuring this one out. I have the following (snippet) of a GPX file:

<gpx version="1.1" ...>
  <trk>
    <trkseg>
      <trkpt lat="39.998454" lon="-105.086447">
        <ele>1568</ele>
        <time>2019-12-16T10:59:47.000Z</time>
        <extensions>
          <geotracker:meta s="0" />
        </extensions>
      </trkpt>
      <trkpt lat="39.998553" lon="-105.086417">
        <ele>1577</ele>
        <time>2019-12-16T11:01:39.000Z</time>
        <extensions>
          <geotracker:meta c="0.03" s="1.83" />
        </extensions>
      </trkpt>
      ...
      ...
    </trkseg>
  </trk>
</gpx>

Getting to the most of the nodes is easy:

<?php
//open gpx file
$gpx = simplexml_load_file("Dec_16,_2019_3_59_47_AM.gpx");

foreach ($gpx->trk as $trk) {
    foreach ($trk->trkseg as $seg) {
        foreach ($seg->trkpt as $pt) {
            echo "lat: ", $pt["lat"], "   lon: ", $pt["lon"];
            echo "    ele: ", $pt->ele, "   time: ", $pt->time, "\n";
        }
    }
}
unset($gpx);
?>

But for the life of me, I can't figure out how to get information that's on the geotracker:meta line. Also note that not every single one of them will have both the 'c' and 's' attributes. Does anyone have any pointers pls?

A

Converting it to array should make it easier for you:

 

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux