Autor | Zpráva | ||
---|---|---|---|
danhill Profil |
#1 · Zasláno: 9. 8. 2016, 09:38:17
Dobrý den,
potřeboval pomoc s taháním dat z gpx souboru. Ten má ve zkrácené verzi asi takový tvar: <?xml version="1.0" encoding="utf-8"?> <gpx xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <name>My Finds Pocket Query</name> <wpt lat="50.039983" lon="14.361483"> <name>GC15TN3</name> <groundspeak:cache id="686035" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0/1"> <groundspeak:name>Odula - Nad koupalištem</groundspeak:name> <groundspeak:type>Traditional Cache</groundspeak:type> <groundspeak:encoded_hints>dolni jeskyne, na bobek a doprava</groundspeak:encoded_hints> <groundspeak:logs> <groundspeak:log id="181097101"> <groundspeak:date>2011-08-20T19:00:00Z</groundspeak:date> <groundspeak:finder id="3039555">Karel</groundspeak:finder> </groundspeak:log> </groundspeak:logs> <groundspeak:travelbugs /> </groundspeak:cache> </wpt> <wpt lat="50.109233" lon="14.40425"> <name>GC1HXAX</name> <groundspeak:cache id="1046094" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0/1"> <groundspeak:name>Mala ricka/small river</groundspeak:name> <groundspeak:type>Multi-cache</groundspeak:type> <groundspeak:encoded_hints>sloupek svodidel</groundspeak:encoded_hints> <groundspeak:logs> <groundspeak:log id="348896449"> <groundspeak:date>2013-09-08T19:00:00Z</groundspeak:date> <groundspeak:finder id="3039555">Karel</groundspeak:finder> </groundspeak:log> </groundspeak:logs> <groundspeak:travelbugs /> </groundspeak:cache> </wpt> </gpx> Bodů v tagu wpt může být velmi mnoho a budou se měnit.Jinak ale struktura zůstává stejná. Takže potřebuji foreach a každý wpt bod zpracovat zvláště. Potřebuji z toho vytáhnout do proměnných obsahy těchto tagů: <name> <groundspeak:name> <groundspeak:type> <groundspeak:encoded_hints> <groundspeak:date> <groundspeak:finder id="3039555"> (id se bude měnit - jde ale o jméno uvnitř) Zkoušel jsem to takto: $xml=simplexml_load_file('tmp_finds/'.$newfilename); foreach($xml->wpt as $point){ print_r($point); } Taky jsem to zkoušel pomocí DOM : $gpxDoc = new DOMDocument(); $gpxDoc->load( 'tmp_finds/'.$newfilename ); $searchNode = $gpxDoc->getElementsByTagName( "wpt->groundspeak:cache" ); foreach( $searchNode as $searchNode ) { $cache_type = $searchNode->getElementsByTagName( "groundspeak:type" ); $valueCache_type = $cache_type->item(0)->nodeValue; echo $valueCache_type; } Ale tohle nefunguje vůbec :( ... |
||
nightfish Profil |
#2 · Zasláno: 9. 8. 2016, 13:05:53
<?php $xml=simplexml_load_file('tmp_finds/'.$newfilename); foreach($xml->wpt as $wpt) { $groundspeak = $wpt->children('http://www.groundspeak.com/cache/1/0/1'); echo "name = ".$wpt->name."<br>"; echo "groundspeak:name = ".$groundspeak->cache->name."<br>"; echo "groundspeak:type = ".$groundspeak->cache->type."<br>"; echo "groundspeak:encoded_hints = ".$groundspeak->cache->encoded_hints."<br>"; foreach ($groundspeak->cache->logs[0] as $log) { echo "groundspeak:date = ".$log->date."<br>"; echo "groundspeak:finder = ".$log->finder."<br>"; } echo "<hr>"; } |
||
danhill Profil |
#3 · Zasláno: 9. 8. 2016, 15:01:41
nightfish:
Wooow ... moc děkuji, přesně to jsem potřeboval ... zakopaný pes koukám je v pro mě nepochopené proměnné $groundspeak = $wpt->children('http://www.groundspeak.com/cache/1/0/1'); Ale chodí to krásně, takže velmi děkuji... |
||
Časová prodleva: 8 let
|
0