elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 08:57  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Problemas para leer un RSS (Microsoft.XMLDOM)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas para leer un RSS (Microsoft.XMLDOM)  (Leído 1,630 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 693


Seguime


Ver Perfil WWW
Problemas para leer un RSS (Microsoft.XMLDOM)
« en: 8 Junio 2011, 21:07 »

Hola tengo problemas para leer un rss, estoy usando Microsoft.XMLDOM, el problema es cuando trato de leer el documento ("Load"), lo que es extraño para mí es que con Firefox o Internet Explorer se muestra correctamente.

el problema es con este rss http://www.taringa.net/rss/home/ultimos-posts/

al parecer es por la primera linea
Código:
<?xml version="1.0" encoding="UTF-8"?>

si yo descargo el documento en disco y pongo
Código:
<?xml version="1.0" encoding="ISO-8859-1"?>
lee el documento correctamente.

Código:
Option Explicit
'Private Doc As DOMDocument
Private Doc As Object

Private Sub Form_Load()
    Dim sURL As String
    
    'This fail
    sURL = "http://www.taringa.net/rss/home/ultimos-posts/"
    
    'This ok if Doc.validateOnParse = False
    'sURL = "http://ezrss.it/feed/"
    
    
    'This ok
    'sURL = "http://d.yimg.com/ar.rss.news.yahoo.com/rss/insolitas"
    
    'Set Doc = New DOMDocument
    Set Doc = CreateObject("Msxml2.DOMDocument.3.0") 'or "Microsoft.XMLDOM"
    
    Doc.resolveExternals = False
    Doc.async = False
    Doc.validateOnParse = False

 
    If Doc.Load(sURL) Then
        Debug.Print Doc.xml
    Else
        Debug.Print Doc.parseError
    End If
End Sub


« Última modificación: 8 Junio 2011, 21:09 por LeandroA » En línea

raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.372


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problemas para leer un RSS (Microsoft.XMLDOM)
« Respuesta #1 en: 8 Junio 2011, 22:41 »

Parece que tendrás que descargarlo y leerlo con LoadXML, aunque si tiene caracteres "raros" los tomará como "?"

Código
Option Explicit
'Private Doc As DOMDocument
Private Doc As Object
 
Private Sub Form_Load()
   'Set Doc = New DOMDocument
   Set Doc = CreateObject("Msxml2.DOMDocument.3.0") 'or "Microsoft.XMLDOM"
   
   Doc.resolveExternals = False
   Doc.async = False
   Doc.validateOnParse = False
 
   ' ChrW$(8364) = Simbolo del euro €
   ' ChrW$(&H8FCE) = Simbolo de Asia del este
   
   If Doc.LoadXML("<?xml version=""1.0"" encoding=""UTF-8""?><symbol>" & ChrW$(8364) & ChrW$(&H8FCE) & "</symbol>") Then
       Debug.Print Doc.xml
   Else
       Debug.Print Doc.parseError
   End If
End Sub
 

Resultado
Código
<?xml version="1.0"?>
<symbol>€?</symbol>


En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 693


Seguime


Ver Perfil WWW
Re: Problemas para leer un RSS (Microsoft.XMLDOM)
« Respuesta #2 en: 9 Junio 2011, 03:37 »

Buenisimo raul, parece que funciona bien, por lo de los signos raros no importa lo ago la combercion de UTF-8 a unicode.

Saludos y muchas gracias
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Problemas para leer un RSS (Microsoft.XMLDOM)
« Respuesta #3 en: 9 Junio 2011, 04:28 »

Hola, leandro con ese link del rss de taringa no funciona efectivamente, pero probe con otro que es lo mismo y funciona bien.

en vez de http://www.taringa.net/rss/home/ultimos-posts/


usar esta http://rss.taringa.net/taringa/ultimos-post

Código
Option Explicit
 
Dim Doc As DOMDocument
 
Private Sub Form_Load()
 
   Set Doc = New DOMDocument
   Doc.resolveExternals = True
   Doc.async = False
 
   If Doc.Load("http://rss.taringa.net/taringa/ultimos-post") Then
       MsgBox Doc.selectNodes("/rss/channel/item").length
       MsgBox GetElement("rss/channel/item/title", 0)
       MsgBox GetElement("rss/channel/item/link", 0)
   Else
       Debug.Print Doc.parseError
   End If
 
   Set Doc = Nothing
End Sub
 
Private Function GetElement(NodeKey As String, Indice As Integer)
   GetElement = Doc.getElementsByTagName(NodeKey).Item(Indice).Text
End Function

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 693


Seguime


Ver Perfil WWW
Re: Problemas para leer un RSS (Microsoft.XMLDOM)
« Respuesta #4 en: 9 Junio 2011, 23:36 »

Buena data seba, de todas formas la forma el de raul es una alternativa por si falla la primera, no es solo un rss de taringa sino es para cualquier rss de cualquier pagina.

SAludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas para leer cd en win xp
Windows
4rS3NI( 6 1,039 Último mensaje 6 Agosto 2005, 19:44
por 4rS3NI(
problemas para leer juegos
Juegos y Consolas
flako750 1 314 Último mensaje 18 Junio 2008, 21:56
por Castiblanco
Problemas para leer unidades de linux desde windows
GNU/Linux
Mafmaestro 1 663 Último mensaje 1 Agosto 2009, 15:52
por Anibal784
[C] Problemas para leer datos
Programación C/C++
cbug 8 941 Último mensaje 16 Junio 2010, 19:03
por cbug
[python] - Error de emptyList con XMLDom
Scripting
wolvelopez 1 221 Último mensaje 3 Octubre 2011, 20:03
por wolvelopez
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines