Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ayuda con lectura de XML

Estas en el tema de Ayuda con lectura de XML en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos. tengo unpequeño problema con XML, la cuestion es q ue obtengo mi xml de una url de la siguiente manera Código PHP: ...
  #1 (permalink)  
Antiguo 28/09/2009, 17:25
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Ayuda con lectura de XML

Hola a todos.

tengo unpequeño problema con XML, la cuestion es q ue obtengo mi xml de una url de la siguiente manera
Código PHP:
$ch curl_init();
    
curl_setopt($chCURLOPT_URL,
        
"http://mipagina.com");
    
curl_setopt($chCURLOPT_TIMEOUT30);
    
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
    
$resultado curl_exec ($ch); 
y es un xml bien formado por q en el navegador me habre correctamente

lo convierto a objetoXML con la siguiente linea

Código PHP:
$xml = new SimpleXMLElement$resultado); 
cuando quiero recuperar mi nodos y los atributos de cada nodo no puedo hacerlo, cuando hago un
Código PHP:
var_dump($xml); 
me muestra algo asi
Código:
object(SimpleXMLElement)#1 (2) {
  ["@attributes"]=>
  array(2) {
    ["generated_in"]=>
    string(6) "0.1481"
    ["stat"]=>
    string(2) "ok"
  }
  ["videos"]=>
  object(SimpleXMLElement)#2 (2) {
    ["@attributes"]=>
    array(4) {
      ["on_this_page"]=>
      string(2) "25"
      ["page"]=>
      string(1) "1"
      ["perpage"]=>
      string(2) "25"
      ["total"]=>
      string(4) "1000"
    }
    ["video"]=>
    array(25) {
      [0]=>
      object(SimpleXMLElement)#3 (1) {
        ["@attributes"]=>
        array(7) {
          ["embed_privacy"]=>
          string(8) "anywhere"
          ["id"]=>
          string(7) "4660957"
          ["is_hd"]=>
          string(1) "0"
          ["owner"]=>
          string(6) "846001"
          ["privacy"]=>
          string(7) "anybody"
          ["title"]=>
          string(5) "Vimeo"
          ["upload_date"]=>
          string(19) "2009-05-15 05:08:59"
        }
      }
ya intente de todo y no puedo acceder ni a los nodos ni a mis variables.

espero me puedan ayudar, gracias

saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
  #2 (permalink)  
Antiguo 28/09/2009, 18:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Ayuda con lectura de XML

Estás creando una instancia de SimpleXMLElement. En la documentación puedes ver los métodos disponibles para leer la información: www.php.net/class.simplexmlelement

Tu XML es un tanto particular, técnicamente todos son atributos. Necesitas utilizar el método attributes().

Por ejemplo, para acceder a los atributos del nodo videos, podrías hacer algo como:
Código PHP:
Ver original
  1. foreach ($xml->videos[0]->attributes() as $att => $val) {
  2.     echo $att . '="' . $val . "\"\n";
  3. }
Suerte

PD: Aunque como resultado deberías obtener lo mismo, creo sería mejor utilizar la función simplexml_load_string() ... si es que en verdad tu resultado es un XML válido.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 29/09/2009, 06:52
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Ayuda con lectura de XML

gracias por tu ayuda, me sirvio a la perfeción tu pequeño ejemplo

saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
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 01:26.