Foros del Web » Programando para Internet » PHP »

Parsear resultado de twitter (xml)

Estas en el tema de Parsear resultado de twitter (xml) en el foro de PHP en Foros del Web. Hola colegas, veran actualmente tengo una aplicacion que lee datos de un usuario de twitter el cual en si es unicamente una cadena XML. Pero ...
  #1 (permalink)  
Antiguo 14/10/2009, 08:51
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Parsear resultado de twitter (xml)

Hola colegas, veran actualmente tengo una aplicacion que lee datos de un usuario de twitter el cual en si es unicamente una cadena XML. Pero realmente son solo dos datos los que utilizo created_at (la fecha) y text (la noticia).

Ahora lo que estoy intentado hacer es limpiar esa cadena, de tal manera que unicamente me regrese esos dos datos (nodos). Este es el link que me genera los datos de ejemplo.

Código PHP:
<?php
header
("Content-type: text/xml");

function 
LeerDatos($Twits=5$User='sergestux')
{
    
$url "http://twitter.com/statuses/user_timeline.xml?screen_name=$User&count=$Twits";
    
$result file_get_contents($url);
    return 
$result;    
}

//Limpia la cadena xml y regresa solamente la hora y la noticia quitando los demas elementos
function LimpiarXml($Xml)
{
   
//Parsear XML
    
return $Xml;    
}


$Xml=LeerDatos();
$Xml=LimpiarXml($Xml);
print 
$Xml;
  #2 (permalink)  
Antiguo 14/10/2009, 09:17
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 20 años, 2 meses
Puntos: 13
Respuesta: Parsear resultado de twitter (xml)

Pues asi a pelo podrias usar algo asi:



Código PHP:
  $doc = new DOMDocument();
  
$doc->loadXML("http://twitter.com/statuses/user_timeline.xml?screen_name=$User&count=$Twits");
  
  
$Twetts $doc->getElementsByTagName"status" );
  foreach( 
$Twetts as $Twett ):

  
$Twtter $book->getElementsByTagName"text" );
  
$Twtter $Twtter->item(0)->nodeValue;
  echo 
$Twtter."<br>";

  endforeach; 
  #3 (permalink)  
Antiguo 14/10/2009, 09:34
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: Parsear resultado de twitter (xml)

Gracias por codigo, pero al intentar con el codigo que me diste me sale el siguiente error:

Cita:
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Start tag expected, '<' not found in Entity, line: 1 in C:\AppServ\www\twitter\twitter.php on line 54

En la lina 54 intento cargar el archivo remoto:
Código PHP:
$doc->loadXML("http://twitter.com/statuses/user_timeline.xml?screen_name=sergestux&count=5"); 
  #4 (permalink)  
Antiguo 14/10/2009, 09:54
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
De acuerdo Respuesta: Parsear resultado de twitter (xml)

Ya lo logre limpiar con esta funcion que me arme:

Código PHP:
function LimpiarXml($Xml)
{
    
$dom = new DOMDocument;
    
$dom->loadXML($Xml);
    
$s simplexml_import_dom($dom);

    print 
"<twitter>\n";
    foreach(
$s->status as $nodo)
    {
        print 
"\n\t<nodo>\n";        
        print 
"\t\t <fecha> $nodo->created_at </fecha>\n";
        print 
"\t\t <texto> $nodo->text </texto>\n";
        print 
"\t</nodo>\n";
    }
    print 
"\n</twitter>";

Me arroja el sig. resultado que es lo que deseaba muy diferente a las 202 lineas que me arrojaba anteriormente:

Código xml:
Ver original
  1. <twitter>
  2.     <nodo>
  3.          <fecha> Wed Oct 14 15:38:15 +0000 2009 </fecha>
  4.          <texto> test </texto>
  5.     </nodo>
  6.     <nodo>
  7.          <fecha> Wed Oct 14 14:54:58 +0000 2009 </fecha>
  8.          <texto> Leyendo sobre simpleXML http://mx.php.net/manual/en/book.simplexml.php ni tan simple :-[ </texto>
  9.     </nodo>
  10.     <nodo>
  11.          <fecha> Tue Oct 13 23:49:21 +0000 2009 </fecha>
  12.          <texto> http://www.w3.org/ rediseño su sitio, se ve bonito y limpio </texto>
  13.     </nodo>
  14.     <nodo>
  15.          <fecha> Tue Oct 13 23:29:00 +0000 2009 </fecha>
  16.          <texto> rt @polo_polo: Me encanta el árbol del guayabo y me subo seguido, en cambio la papaya me da como miedito, a ustedes no...? pinche alburero </texto>
  17.     </nodo>
  18.     <nodo>
  19.          <fecha> Mon Oct 12 18:11:07 +0000 2009 </fecha>
  20.          <texto> ni pex, twitter haber si ya te levantas y te pones las pilas </texto>
  21.     </nodo>
  22. </twitter>

Gracias por la intencion de ayudar

Última edición por Sergestux; 19/10/2009 a las 09:39
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:54.