Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] exrtaer valores xml

Estas en el tema de exrtaer valores xml en el foro de PHP en Foros del Web. hola, estoy tratando de extraer valores de un xml, la intencion es extraer todos los valores, el siguiente codigo solo inserta un valor por variable, ...
  #1 (permalink)  
Antiguo 10/06/2014, 07:14
 
Fecha de Ingreso: septiembre-2012
Ubicación: montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 0
exrtaer valores xml

hola, estoy tratando de extraer valores de un xml, la intencion es extraer todos los valores, el siguiente codigo solo inserta un valor por variable, he probado con foreach sin suerte, agradezco ayuda.

Código PHP:
<?php
include ("conecta.php");
  global 
$db_selected;
  global 
$db;
 
$usertable "datosgpx";
 
$gpxsimplexml_load_file('1.gpx'); 

$lat $gpx->wpt['lat'];
$lon $gpx->wpt['lon'];
$ele $gpx->wpt->ele;
$fecha $gpx->wpt->{'time'};

$query "INSERT INTO $usertable (fecha,lat,lon,ele) VALUES ('$fecha','$lat','$lon','$ele')"
//echo $query;
$result mysql_query($query,$db);

if (!
$query){echo "Error al guardar";}else{echo "Guardado con exito";}
    
?>
  #2 (permalink)  
Antiguo 10/06/2014, 08:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: exrtaer valores xml

Sabes, tienes repetido esto varias veces y mas de un día con el problema... Es muy raro que no lo puedas resolver. Pero te sugiero que lo intentes por que si esperas a que alguien te diga exactamente que hacer, puedes ir relajándote por que vas a esperar un buen rato. Sin contar que es posible que te ganes algún tipo de sanción si no dejas de estar repitiendo el mensaje.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 10/06/2014, 09:01
 
Fecha de Ingreso: septiembre-2012
Ubicación: montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: exrtaer valores xml

si, me urge hacer esto y me encuentro trancado, supongo que para alguien con experiencia seria algo sencillo. aunque tienes razon, esperare a ver si alguien me puede ayudar, saludos.
  #4 (permalink)  
Antiguo 10/06/2014, 09:13
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: exrtaer valores xml

Para que alguien te ayude, tiene q haber trabajado con gpx, o bien, conocer como vienen estos...

Si quieres que "cualquiera" pueda ayudarte, deberías incluir un ejemplo de gpx, de, por ejemplo, dos "wpt" (¿waypoint?)

De todas formas, se debería solucionar con un foreach técnicamente ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 10/06/2014, 09:22
 
Fecha de Ingreso: septiembre-2012
Ubicación: montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: exrtaer valores xml

pienso que deberia ser un foreach, obiamente al tratar de implementerlo es donde me euivoco, aqui dejo un ejemplo de gpx con tres registros por las dudas

<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 10" 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://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/Wa...xtensionv1.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>2014-05-23T11:25:26Z</time></metadata>

<wpt lat="-34.904523" lon="-54.931642"><ele>15.331123</ele><time>2014-05-23T11:25:26Z</time><name>001</name><sym>Flag, Blue</sym></wpt>
<wpt lat="-34.904081" lon="-54.931771"><ele>15.963099</ele><time>2014-05-23T11:34:53Z</time><name>002</name><sym>Flag, Blue</sym></wpt>
<wpt lat="-34.904184" lon="-54.932191"><ele>14.877506</ele><time>2014-05-23T11:40:36Z</time><name>003</name><sym>Flag, Blue</sym></wpt>
  #6 (permalink)  
Antiguo 10/06/2014, 09:51
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: exrtaer valores xml

Prueba rápida:

Código PHP:

 $usertable 
"datosgpx"
 
 
 
$string_gpx '<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 10" 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://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/Wa...xtensionv1.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>2014-05-23T11:25:26Z</time></metadata><wpt lat="-34.904523" lon="-54.931642"><ele>15.331123</ele><time>2014-05-23T11:25:26Z</time><name>001</name><sym>Flag, Blue</sym></wpt><wpt lat="-34.904081" lon="-54.931771"><ele>15.963099</ele><time>2014-05-23T11:34:53Z</time><name>002</name><sym>Flag, Blue</sym></wpt><wpt lat="-34.904184" lon="-54.932191"><ele>14.877506</ele><time>2014-05-23T11:40:36Z</time><name>003</name><sym>Flag, Blue</sym></wpt></gpx>';
  
$gpxsimplexml_load_string($string_gpx);  

foreach(
$gpx->wpt as $wpt) {
    
$lat $wpt['lat']; 
    
$lon $wpt['lon']; 
    
$ele $wpt->ele
    
$fecha $wpt->{'time'}; 
    
$query "INSERT INTO $usertable (fecha,lat,lon,ele) VALUES ('$fecha','$lat','$lon','$ele')";  
    echo 
$query;

PD: Para que el xml fuera válido, te faltaba un </gpx> al final...
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 10/06/2014, 10:35
 
Fecha de Ingreso: septiembre-2012
Ubicación: montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: exrtaer valores xml

muchas gracias por tu respuesta, la implemente de la siguiente forma sin exito, en este caso no inserto ningun valor en la tabla:

Código PHP:
Ver original
  1. <?php
  2. include ("conecta.php");
  3.   global $db_selected;
  4.   global $db;
  5. $usertable = "datosgpx";
  6.  
  7.  
  8.  $string_gpx = '<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 10" 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://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/Wa...xtensionv1.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>2014-05-23T11:25:26Z</time></metadata><wpt lat="-34.904523" lon="-54.931642"><ele>15.331123</ele><time>2014-05-23T11:25:26Z</time><name>001</name><sym>Flag, Blue</sym></wpt><wpt lat="-34.904081" lon="-54.931771"><ele>15.963099</ele><time>2014-05-23T11:34:53Z</time><name>002</name><sym>Flag, Blue</sym></wpt><wpt lat="-34.904184" lon="-54.932191"><ele>14.877506</ele><time>2014-05-23T11:40:36Z</time><name>003</name><sym>Flag, Blue</sym></wpt></gpx>';
  9.  
  10. $gpx= simplexml_load_string($string_gpx);  
  11.  
  12. foreach($gpx->wpt as $wpt) {
  13.     $lat = $wpt['lat'];
  14.     $lon = $wpt['lon'];
  15.     $ele = $wpt->ele;
  16.     $fecha = $wpt->{'time'};
  17.     $query = "INSERT INTO $usertable (fecha,lat,lon,ele) VALUES ('$fecha','$lat','$lon','$ele')";  
  18.     //echo $query;
  19. }  
  20.  
  21. if (!$query){echo "Error al guardar";}else{echo "Guardado con exito";}
  22.    
  23. ?>
  #8 (permalink)  
Antiguo 11/06/2014, 04:44
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: exrtaer valores xml

No, claro que no....

En ningún momento añadi una conexión, o un mysql_query o similar...

Sólo quise darte la pista de "cómo" trabajar el xml... dónde poner el foreach...

Asiq, adapta tu script a este, no hagas copy & paste... intenta "entender" el cambio que hice yo, y sabrás sacar tu script

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 11/06/2014, 12:07
 
Fecha de Ingreso: septiembre-2012
Ubicación: montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: exrtaer valores xml

ok, quedo pronto lo pongo aqui para por si a alguien le sirve, gracias

Código PHP:
Ver original
  1. $gpx= simplexml_load_file('1.gpx');
  2.  
  3. foreach($gpx->wpt as $wpt) {
  4.     $lat = $wpt['lat'];
  5.     $lon = $wpt['lon'];
  6.     $ele = $wpt->ele;
  7.     $fecha = $wpt->{'time'};
  8.     $query = "INSERT INTO $usertable (fecha,lat,lon,ele) VALUES ('$fecha','$lat','$lon','$ele')";  
  9.     //echo $query;
  10.     mysql_query($query,$db);
  11. }  
  12.  
  13. if (!$query){echo "Error al guardar";}else{echo "Guardado con exito";}
  14.    
  15. ?>

Etiquetas: fecha, mysql, select, variable, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:03.