Hallo,

Ik wil in een gpx file gaan lezen vanaf een bepaalde plaats(vb waar telkens <wpt begint) , daar maak ik dan een file van fread($fopen, 3800); met deze grootte, daarna moet er terug gezocht worden naar <wpt om terug een file van 3800 van te maken.

Ziet iemand dit zitten om hier een klein voorbeeld van te geven ?
Als je wil kan ik altijd de gpx aan iemand laten geworden.(blijkbaar kan ik hier geen file doorsturen)

Met dank op voorhand
Ik weet niet hoe die tool werkt, maar heb je dit al eens getest om te zien wat eruit komt.

<?php

var_dump($xml->wpt[0]);

?>
blijf dezelfde fout krijgen

Parseerfout: syntaxisfout, onverwacht token ":", verwacht "," of ";" in C:\xampp\htdocs\geo_db_gpx_gsak\test.php op regel 10
Je moet die regels ook even weghalen. Alleen dit:

<?php

header ('Content-type: text/html; charset=utf8mb4');
$xml=simplexml_load_file("c:/geo_db/test.gpx") or die("Error: Cannot create object");

var_dump($xml->wpt[0]);

?>
blijf de foutmelding krijgen ...


<?php
header ('Content-type: text/html; charset=utf8mb4');
$xml=simplexml_load_file("c:/geo_db/test.gpx") or die("Error: Cannot create object");
var_dump($xml->wpt[0]);
echo $xml->wpt[0]['lat'] . "<br>";
echo $xml->wpt[0]['lon'] . "<br>";
echo $xml->wpt[0]->name . "<br>";
echo $xml->wpt[0]->desc . "<br>";
echo $xml->wpt[0]->type . "<br>";
echo $xml->wpt[0]->groundspeak:container . "<br>";
echo $xml->wpt[0]->groundspeak:difficulty . "<br>";
echo $xml->wpt[0]->groundspeak:terrain . "<br>";
echo $xml->wpt[0]->groundspeak:country . "<br>";
echo $xml->wpt[0]->groundspeak:state . "<br>";
?>



[size=xsmall]Toevoeging op 18/02/2023 23:48:27:[/size]

foutmelding is op echo $xml->wpt[0]->groundspeak:container . "<br>";

omdat er een : tussen groundspeak en container staat.
Zucht ... ben ik echt zo onduidelijk?

Ik gaf toch echt aan dat je alleen die 3 regels moet plaatsen. De rest moet je even weghalen.

Alleen dit en verder niks.

<?php

header ('Content-type: text/html; charset=utf8mb4');
$xml=simplexml_load_file("c:/geo_db/test.gpx") or die("Error: Cannot create object");

var_dump($xml->wpt[0]);

?>
sorry, zo had ik het niet begrepen:
dan krijg ik dit :

object ( SimpleXMLElement )[ 4 ]
public '@attributes' =>
array (size=2)
'lat' => string '50.558333' (length=9)
' lon' => string '4.101667' (lengte=8)
public 'time' => string '2022-12-24T08:00:00Z' (length=20)
public 'name' => string 'GCA02MB' (length=7 )
public 'desc' => tekenreeks '26. Er hangt illusie in de lucht door Jc et Fr (2/2)' (lengte=53)
public 'url' => string 'http://coord.info/GCA02MB' (lengte=25)
public 'urlname' => tekenreeks '26. Er hangt illusie in de lucht door Jc et Fr' (lengte=47)
public 'sym' => string 'Geocache' (lengte=8)
public 'type' => string 'Geocache|Unknown Cache' ( lengte=22)
Als ik Google heeft die : iets te maken met een namespace. Probeer onderstaande regel eens eraan toe te voegen:

<?php

var_dump($xml->wpt[0]->children('groundspeak', true)->container);

?>
Grote kans dat het fout gaat hoor, maar je kunt het eens proberen.
grote fout :

Warning: simplexml_load_file(): c:/geo_db/test.gpx:21: namespace error : Failed to parse QName 'xmlns:groundspeak:' in C:\xampp\htdocs\geo_db_gpx_gsak\test.php on line 3


<?php
header ('Content-type: text/html; charset=utf8mb4');
$xml=simplexml_load_file("c:/geo_db/test.gpx") or die("Error: Cannot create object");
var_dump($xml->wpt[0]);
var_dump($xml->wpt[0]->children('groundspeak', true)->container);


>> grote fout :

Gewoon een foutmelding. Niet gelijk zo paniekerig reageren.

Ik weet ook niet hoe dit werkt. Ik probeer je gewoon te helpen.

Plak hier eens de eerste 25 regels van dat gpx bestand.
Ikzelf gebruik geloof zo een constructie:

$string= file_get_content("bla.xml") waarna ik $xml=simplexml_load_string($string) gebruik.

Als je nu een beknopte sample op Pastebin plaatst met een paar geocache items. Met een half deel kunnen we niet veel als we niet weten welke tags (nodes) er gebruikt worden.

Reageren