Foros del Web » Programando para Internet » PHP »

Problema simplexml con fichero KML

Estas en el tema de Problema simplexml con fichero KML en el foro de PHP en Foros del Web. Buenas, estoy utilizando simplexml para parsear y acceder a cierta información en ficheros KML, pero no consigo que funcione bien. Estuve dándole algunas vueltas y ...
  #1 (permalink)  
Antiguo 25/03/2010, 05:01
 
Fecha de Ingreso: marzo-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema simplexml con fichero KML

Buenas, estoy utilizando simplexml para parsear y acceder a cierta información en ficheros KML, pero no consigo que funcione bien. Estuve dándole algunas vueltas y parece que el problema lo causa la propia etiqueta kml, de forma que con este fichero:

Código:
<?xml version='1.0' encoding='UTF-8'?>
  <kml xmlns='http://www.opengis.net/kml/2.2'>
    <Document>
      <Placemark targetID='3'>
        <name>3</name>
        <Point>
            <coordinates>-15.520963805572499,28.041931931319802</coordinates>
         </Point>
      </Placemark>
    </Document>
  </kml>
Y este código:

Código:
$kml=simplexml_load_string($data);
echo $kml->Placemark[0]->name;
Obtengo este error:

Notice: Trying to get property of non-object in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\prueba.php on line 6

Sin embargo, si le quito la etiqueta kml:

Código:
<?xml version='1.0' encoding='UTF-8'?>
    <Document>
      <Placemark targetID='3'>
        <name>3</name>
        <Point>
            <coordinates>-15.520963805572499,28.041931931319802</coordinates>
         </Point>
      </Placemark>
    </Document>
Entonces sí me muestra el contenido de la etiqueta name. Alguien sabe que puede ser?
  #2 (permalink)  
Antiguo 25/03/2010, 05:34
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Problema simplexml con fichero KML

haz un
Código PHP:
echo '<pre>';
print_r($kml);
echo 
'</pre>'
  #3 (permalink)  
Antiguo 25/03/2010, 06:03
 
Fecha de Ingreso: marzo-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema simplexml con fichero KML

Gracias Eleazan, parece que ya di con el fallo. Con la etiqueta kml obtengo esto:

Código HTML:
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></HEAD><BODY><PRE>SimpleXMLElement Object
(
    [Document] =&gt; SimpleXMLElement Object
        (
            [Placemark] =&gt; Array
                (
                    [0] =&gt; SimpleXMLElement Object
                        (
                            [@attributes] =&gt; Array
                                (
                                    [targetID] =&gt; 3
                                )

                            [name] =&gt; 3
                            [Point] =&gt; SimpleXMLElement Object
                                (
                                    [coordinates] =&gt; -15.520963805572499,28.041931931319802
                                )

                        )
...
</PRE><BR>
<B>Notice</B>:  Trying to get property of non-object in <B>C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\prueba.php</B> on line <B>11</B><BR>
</BODY></HTML> 
Sin la etiqueta kml:

Código HTML:
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></HEAD><BODY><PRE>SimpleXMLElement Object
(
    [Placemark] =&gt; Array
        (
            [0] =&gt; SimpleXMLElement Object
                (
                    [@attributes] =&gt; Array
                        (
                            [targetID] =&gt; 3
                        )

                    [name] =&gt; 3
                    [Point] =&gt; SimpleXMLElement Object
                        (
                            [coordinates] =&gt; -15.520963805572499,28.041931931319802
                        )

                )
...
)
</PRE>3</BODY></HTML> 
O sea, que la forma correcta sería:

Código PHP:
echo $kml->Document[0]->Placemark[0]->name
Sinceramente no entiendo muy bien por qué se construyen de forma diferente (el nodo document ni siquiera aparece en la segunda versión), pero bueno, supongo que habrá que sacarlo a base de prueba y error

Pues eso, gracias por la ayuda
  #4 (permalink)  
Antiguo 25/03/2010, 06:05
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Problema simplexml con fichero KML

No tengo ni idea :)

Pero siempre va bien el print_r :)

Etiquetas: fichero, kml, simplexml
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 00:19.