lezen in gpx file top op een bepaalde plaats

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4

Berta Pappens

Berta Pappens

19/02/2023 18:06:22
Quote Anchor link
ik krijg enkel dit zoals ik u heb laten zien in vorige kader.(maar dit is niet de volledige xml array
 
PHP hulp

PHP hulp

22/12/2024 07:37:34
 
- Ariën  -
Beheerder

- Ariën -

19/02/2023 18:10:28
Quote Anchor link
Ik krijg de volledige array te zien. Ik heb geen idee wat je verkeerd lijkt te doen.
Misschien heb je het verkeerde bestand ingelaen? Misschien moet je even de data opnieuw downloaden?
Ik weet het niet.

Hier krijg ik een volledige array.

En anders kan je voor het gemak ook de namespaces eruit strippen, als het haast heeft.
En anders moet je met xpath de namespace oproepen.
Gewijzigd op 19/02/2023 18:12:28 door - Ariën -
 
Berta Pappens

Berta Pappens

19/02/2023 18:16:22
Quote Anchor link
Hartelijk bedankt voor de moeite maar ik geef het op.

Dit is nog moeilijker dan het gewoon uitlezen via de gewone weg in php.
Het spijt mij zo dat we hier niet tot een oplossing komen.

Nogmaals hartelijk bedankt
 
Willem vp

Willem vp

19/02/2023 18:17:34
Quote Anchor link
- Ariën - op 19/02/2023 17:17:13:
Ik krijg ook een berg aan warnings, maar dat komt door die brakke namespaces.

Waar haal je die XML eigenlijk vandaan?

Zo te zien is de XML gegenereerd door GSAK, maar ik heb sterk de indruk dat er een nabewerking op heeft plaatsgevonden, aangezien de GPX-bestanden die door mijn GSAK worden gegenereerd wel gewoon door de parser komen.

Het probleem met de laatst geposte XML is dat een heleboel regels beginnen met een of meerdere non-breaking spaces (ASCII 0xA0) in plaats van met gewone spaties (ASCII 0x20). Als je daar gewone spaties van maakt, wordt de XML goed verwerkt.

In een eerdere versie van de XML lijkt een global substitute te hebben plaatsgehad op het woord 'groundspeak'. Daar stond redelijk consequent een dubbele punt achter op plaatsen waar dat niet hoorde.
 
- Ariën  -
Beheerder

- Ariën -

19/02/2023 18:21:42
Quote Anchor link
Ik had ook al een vermoeden dat er wat vreemd met die XML aan de hand was.
Ik krijg er door die brakke namespaces geen enkel fatsoenlijke data uit de node caches.

Als Berta nou antwoord gaf op de vraag hoe ze er aan kwam, had het duidelijk kunnen zijn wat er mee gebeurd is.
Gewijzigd op 19/02/2023 18:21:58 door - Ariën -
 
Berta Pappens

Berta Pappens

19/02/2023 18:23:06
Quote Anchor link
Kan er dan iemand het juiste progje hier schrijven waar ik alle velden kan mee uitlezen ook de grounspeak:placed_by enz ..

Dank jullie wel

Toevoeging op 19/02/2023 18:24:09:

de gpx wordt hier gemaakt zoals willem zei door GSAK
 
- Ariën  -
Beheerder

- Ariën -

19/02/2023 18:24:33
Quote Anchor link
Hoe kom je nou aan die XML? Daar ben ik wel benieuwd naar.

Ik zou het erg op prijs stellen als er netjes antwoord gegeven wordt op de gestelde vragen. Eerlijk gezegd wordt ik moet herhalen.


Toevoeging op 19/02/2023 18:27:33:

Maar toch raar dat Willem een goede XML krijgt, en jij een verkeerde.
Heb je misschien een foute buggende app ofzo?

Ik heb dat programma niet. Geocachen doe ik verder wel. Maar daar heb ik mijn eigen gekozen app's voor.

Ik denk dat het probleem bij je GSAK moet liggen. Je wilt liever niet in de poep van een brakke XML wroeten. ;-)
Gewijzigd op 19/02/2023 18:25:18 door - Ariën -
 
Berta Pappens

Berta Pappens

19/02/2023 18:32:26
Quote Anchor link
zoals ik zei in vorige kader
de gpx wordt hier gemaakt zoals willem zei door GSAK.

Nogmaals bedankt voor alles, maar hier houd het op voor mij.
Mocht Willem willen dan mag hij altijd een voorbeeld sturen hoe het te werk gaat om de gpx uit te lezen ook met de grounspeak:placed_by enz .

Allen echt heel erg bedankt
 
- Ariën  -
Beheerder

- Ariën -

19/02/2023 18:35:19
Quote Anchor link
Ik denk dat je de vraag met veranderen naar: "Waarom heeft Willem een goede XML, en ik een brakke?"
Je kan wel als een holbewoner met reguliere expressies aan de gang gaan, maar als je XML al brak is -al vraag ik me af hoe dat komt- heb je kans dat het straks wel goed gaat, en dan kan je alles weer omgooien.

Dus zoek uit waar de verschillen door worden veroorzaakt.
 
Berta Pappens

Berta Pappens

19/02/2023 18:39:36
Quote Anchor link
Als ik een gpx neem uit mijn pocket query's van geochaching krijg ik hetzelfde resultaat.
foutmeldingen op
$sxe=new SimpleXMLElement($xml);
 
- Ariën  -
Beheerder

- Ariën -

19/02/2023 18:42:29
Quote Anchor link
Kan je vertellen wat je stap-voor-stap doet om die XML te krijgen?
Niet iedereen is bekend met GSAK verder.

Misschien kan ik eens kijken wat dit doet met mijn Geocache account.
 
Willem vp

Willem vp

19/02/2023 22:05:37
Quote Anchor link
Omndat er namespaces in de XML wordt gebruikt, dekt de term SimpleXML niet helemaal de lading. Het wordt iets ingewikkelder om de gegevens te verwerken. Maar als je eenmaal door hebt wat je moet doen, is het nog wel te overzien.

Ik zal een stukje voorbeeldcode geven.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$xml
= simplexml_load_file('c:/geo_db/test.gpx');

foreach ($xml->wpt as $wpt) {
   echo $wpt['lat'] . '<br>';
   echo $wpt['lon'] . '<br>';
   echo $wpt->name . '<br>';
   echo $wpt->desc . '<br>';
   echo explode('|', $wpt->type)[1] . '<br>';

   $wpt->registerXPathNamespace('gsak', 'http://www.gsak.net/xmlv1/6');
   $wpt->registerXPathNamespace('groundspeak', 'http://www.groundspeak.com/cache/1/0/1');
   $c = $wpt->children('groundspeak', true);

   echo $c->cache->container . '<br>';
   echo $c->cache->difficulty . '<br>';
   echo $c->cache->terrain . '<br>';
   echo $c->cache->country . '<br>';
   echo $c->cache->state . '<br>';
}

?>

Omdat het <wpt>-element tot de default namespace behoort, is dat nog eenvoudig te verwerken in een foreach-loop.

Voor de elementen die tot de groundspeak-namespace horen (dus groundspeak:container en dergelijke) moet je eerst de namespace registreren om erbij te kunnen. Ik registreer in deze code ook de gsak-namespace. Omdat ik hier geen gsak:-elementen uitlees, is die regel eigenlijk niet nodig.

Vervolgens vraag ik via $wpt->children() alle child-tags in de groundspeak-namespace op. Eigenlijk hangt er maar één child-element onder wpt, en dat is groundspeak:cache. Daaronder hangen vervolgens alle andere elementen.

Ik hoop dat je hiermee weer wat verder kunt komen.
Gewijzigd op 19/02/2023 22:07:20 door Willem vp
 
Berta Pappens

Berta Pappens

20/02/2023 10:13:55
Quote Anchor link
Willem,

Jij bent de man met de oplossing, en dit met weinig woorden.

Ik weet niet hoe ik u moet bedanken, maar dit is het stukje dat ik echt nodig had.
Blijkbaar had je mij heel goed begrepen en hebben we maar een paar keer naar elkaar geschreven.

Ik heb dit getest en het werkt perfect.
Nogmaals mijn grote dank.
 
Ozzie PHP

Ozzie PHP

20/02/2023 13:39:21
Quote Anchor link
Berta, goed dat je Willem bedankt. En Willem top gedaan!

Berta, ook al heeft Ariën niet direct een werkende oplossing verstrekt, zou je hem ook best even mogen bedanken. Hij heeft je op het juiste spoor gezet met SimpleXml en is al 3 dagen bezig om je te helpen. Dat Willem uiteindelijk een werkende oplossing aandraagt is top, maar volgens mij doen we het op dit forum "met z'n allen" en zie ik bij jou iets te weinig waardering daarvoor terug.

Dus bij deze, Ariën jij ook bedankt! ;-)
 
Berta Pappens

Berta Pappens

20/02/2023 20:14:09
Quote Anchor link
Ozzie,

Daarin heb je gelijk, en dat ging ik nog doen, maar weet ik zit niet ganse dagen achter PC.

Met deze Ariën heel hartelijk bedankt voor uw tijd en uw tips.
Willem nogmaals bedankt voor de juiste oplossing.
Ozzie Bedankt om dit te laten weten .

Maw iedereen bedankt voor alles.
 

Pagina: « vorige 1 2 3 4



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.