Leer datos XML mediante una URL desde .Net

Como ya comenté en un post anterior, es cada vez mas frecuente que los distintos sites interactúen entre ellos, existen múltiples metodologías para llevar a cabo esta función dependiendo de la finalidad que se persigue, y, en el intercambio de información, el XML parece ser una de las opciones mas utilizadas.

Si programas en ASP.Net y tienes que acceder a información de otro web en formato XML, descubrirás que resulta bastante sencillo, ya que .Net incorpora toda una librería para realizar esta tarea sin algoritmos complejos.

Lo primero que has de hacer, por comodidad, es un imports de la librería System.Xml, tras eso declaramos un objeto XMLTextReader y cargamos en él la URL, algo así:

Imports System.Xml

Dim PaginaXML As New XmlTextReader ("String_URL")

Ahora debemos ir recorriendo todo el XML, utilizaremos un bucle Do While y a través de un Select determinaremos en que tipo de nodo nos encontramos. Los nodos de tipo Element son aperturas de etiqueta, los EndElement cierre, los Text el contenido entre etiquetas, etc. Puedes ver todos los tipos de nodo en la librería XmlNodeType de la librería System.Xml.

Dim PaginaXML As New XmlTextReader ("http://entrecodigos.com/a.xml")

Dim EtiquetaActual As String = ""

Do While (PaginaXML.Read())

Select Case reader.NodeType

Case XmlNodeType.Element : EtiquetaActual = PaginaXML.Name
Case XmlNodeType.EndElement : EtiquetaActual = ""
Case XmlNodeType.Text
If EtiquetaActual = "id" Then varId = PaginaXML.Value
If EtiquetaActual = "nombre" Then varNombre = PaginaXML.Value
If EtiquetaActual = "edad" Then varEdad = PaginaXML.Value

End Select

Loop

Como puedes ver en el ejemplo anterior, las propiedades Name y Value sirven para acceder al nombre o valor del nodo, en mi caso, utilizo una variable para saber en que etiqueta me encuentro y me aseguro de limpiar la variable al cerrar la etiqueta. Si lo que queremos es, además, recorrer las propiedades de una etiqueta podemos hacerlo en otro bucle While con el método MoveToNextAtribute y la propiedad HasAttributes o en un bucle For utilizando la propiedad AttributeCount:

Do While(PaginaXML.Read())
Select Case PaginaXML.NodeType
Case XmlNodeType.Element
If PaginaXML.HasAttributes Then
While (PaginaXML.MoveToNextAttribute())
varNombreProp = PaginaXML.Name
varValorProp = PaginaXML.Value
End While
End If
End Select
Loop

Bueno mas o menos eso es todo, lo demás es cuestión de usar tu ingenio para recorrer bucles.

Fisgonia

Hace unos días, buscando información sobre algo referente a los mapas de Google, me encontré con esta web: Fisgonia.

Es una web bilingüe en inglés y castellano que coloca en un Mapa de Google la posición de diversas webcams alrededor de todo el mundo, además de clasificarlas según su tipo. A través del mapa puedes acceder a la webcam, están bastante bien, algunas mejor que otras.

Hace un par de años estuve buscando webcams por toda la red con la esperanza de poder ver ciudades de todo el mundo en directo y desde casa, ya en aquel entonces me llevé una gran desilusión, los años pasan, las tecnologías mejoran, el ancho de banda es mas grande, y las webcams empiezan a estar llenas de polvo y con cagadas de paloma…

Bueno, bromas a parte, no miré todas las webcams, pero alguna estaba bastante bien, la del circuit de Montmeló no era una de las mejores, pero me gustaría que un día de estos pueda echar un vistazo por el cielo de París desde la habitación de mi casa, y no a través de los mapas de Google, sino a través de una webcam, en directo y con buena calidad.

Me pareció curioso que no hubiese ninguna en Madrid, aunque supongo que también depende de los desarrolladores, o de que esas webcams no se escondan al dios Google…

Un día de estos quizás pongamos una en HabitatSoft, para que veáis lo bien que trabajamos, jejeje 😉

Poner un video en tu blog o descargarlo

Es posible que navegando por los distintos blogs de la red te hayas topado con mas de uno en que se mostraba un vídeo de Youtube u otros, quizás te has preguntado como hacen para colgar el vídeo en su blog o incluso como descargar un vídeo de Youtube.

Lo primero resulta bastante sencillo, si quisiéramos colgar, por ejemplo, un vídeo de youtube; basta con copiar y pegar el código que se encuentra al lado del vídeo en cuestión junto a la palabra “Embed”, ten en cuenta que es posible que tu servidor del servicio de blog no soporte el código embebido, en cuyo caso deberás pensar en una alternativa, o en cambiar de servidor.

Si quisiéramos colgar en cambio un vídeo de dalealplay, opción española, también existe una opción similar junto al vídeo en este caso bajo el texto “Reproductor de vídeo:” nos sale un recuadro en que tenemos el código fuente.

Aquí os cuelgo un ejemplo, un vídeo de vocento en dalealplay:

Pero, si lo que a ti te interesa es bajar un vídeo de youtube al disco duro, entonces quizás te interese descargarlo desde una de tantas páginas que ofrecen dicha funcionalidad, por ejemplo, KeepVid.

Los vídeos de Youtube tienen un formato de vídeo Flash que no podrás ver con los reproductores normales, por ello debes bajarte un reproductor de archivos .flv (si al descargarte el vídeo no pone su formato, ponle .flv para poder visualizarlo).

¿Quieres que tu blog sea multilingüe?

Si esperas recibir visitas de extranjeros y te gustaría que no se marcharan sin tan siquiera darle una oportunidad a tu blog, quizás estés interesado en dotar al mismo de múltiples idiomas. Claro que traducir a mano todas las entradas es demasiado lento y laborioso, y para 4 visitas que recibirás de extranjeros quizás no te merece la pena.

Por ello te propongo una solución, usar los traductores de webs online, y sin que tu usuario tenga que molestarse en ir hasta ellos, ya se los traes tu. Colocando un enlace a la página de traducción de webs de Google, por ejemplo, podemos conseguir ver este mismo Blog en inglés. ¡¡¡Ahora ya tengo un blog internacional!!

El problema que presentan estos traductores es que no traducen todo de forma correcta, aunque si escribes bien y con lenguaje sencillo, pocas frases hechas, etcétera, puedes conseguir muy buenos resultados. Uno de los principales problemas lo tiene con los nombres propios, por ejemplo, en SacaCasa se pone a traducir los nombres de las provincias, convirtiendo a Ciudad Real en Real City o a Burgos en… ¡¿Towns?!

Es curioso que si quisiéramos traducir un blog del inglés al castellano daría mas problemas que a la inversa, por ejemplo, si en mi post anterior en que hablaba de Google Earth tuviésemos que traducirlo al castellano se convertiría en “Tierra Google”, mientras que al pasarlo a inglés su nombre permanece intacto.

Bueno, pues ya sabéis, si queréis que vuestro blog sea mas internacional, no olvidéis darle la opción de traducción directa a vuestros visitantes. No será perfecto, pero ya pillarán algo.

Nueva web de complementos para Firefox

En la guerra de navegadores de los últimos tiempos entre Internet Explorer y Mozilla, muchos son los que han defendido las ventajas de uno u otro, el sistema de pestañas que ahora ha copiado Internet Explorer, la organización de favoritos y sistemas de búsqueda mas ergonómicos en Mozilla, los estándares CSS que provocaban que en Mozilla no se vieran bien muchas webs, etc., eran argumentos a favor de uno u otro.

Ahora, con nuevas versiones en ambos, y con IE7 siguiendo mejor los estándares, puede dar la sensación de que la batalla de funcionalidades ha quedado mas igualada, pero, eso sería si no tuviéramos en cuenta todas las funcionalidades que aunque no vienen directamente en Mozilla te puedes descargar de su página de complementos. Y es que, tener de tu lado a la comunidad de usuarios desarrollando distintas herramientas te da muchas ventajas.

Mientras en Microsoft tienen que darse cabezazos pensando en qué podría gustar o interesar a los usuarios de Internet Explorer, en Mozilla los usuarios hacen realidad estas necesidades sin tener que pasar por el equipo de desarrollo y una nueva versión que puede tardar mas de un año.

El 23 de Marzo, MozillaEs anunciaba la traducción al castellano de la nueva web de complementos para FireFox, que mejora la usabilidad de la anterior con un nuevo sistema de búsqueda y otras funcionalidades.

A mi, personalmente, me gusta tanto el nuevo sistema como el anterior, pero me gustaría ver mas en menos, hay miles de complementos, muchos de ellos repetidos, y desplazarse por las distintas páginas buscando el tuyo se convierte en algo muy lento y pesado, por ello un grid con los datos del complemento de forma mas esquematizada permitiría recorrerlos mas fácilmente, por ejemplo. Tampoco estaría mal un buscador por palabras, aunque quizás sea mucho pedir.

Entre los complementos que he visto, ya que hay demasiados para verlos todos, destacaría los traductores, correctores de texto, saber quién es el propietario y host de un site, bloquear popups o publicidad, o incluso saber el ancho de banda disponible.

¿La evolución de internet? El Web 2.0

¿Que es la Web 2.0? Se entiende como Web de segunda generación aquella en la que los usuarios interactúan con el contenido. Las primeras webs, estáticas, mostraban información contenida en un HTML que debía refrescarse con cada click y cuya actualización de contenido era lenta y pesada. Tras eso llegaron las webs dinámicas, en donde lenguajes de servidor se conectaban a una base de datos y generaban un código HTML diferente según la petición del usuario y, finalmente, ahora llega lo que llaman web 2.0.

Proyectos como Blogger, Youtube, Flickr, Menéame o la Wikipedia basan su éxito en esta tecnología, ya que su contenido depende de lo que introduzcan los usuarios en la base de datos. Sin llegar tan lejos, muchas otras webs intentan adaptar su contenido para ofrecer al usuario interacción con la misma, sistemas de votación, comentarios, tecnología AJAX, …

Ahora bien, ¿Podemos hablar realmente de una evolución tecnológica? ¿No será en realidad una moda? ¿Es necesario que TODAS las webs contengan este tipo de funcionalidades? El éxito de las webs de mas prestigio convierte en moda su sistema y provoca que todos quieran seguirlo, y quien no lo hace, mas en un mundo tan cambiante como el web, queda obsoleto.

Pero no sería la primera vez que una moda termina por entorpecer la usabilidad y eficiencia de un site, así como su éxito. Sería el caso de la moda Flash, que ante la calidad gráfica que ofrecía, muchos se pasaron a esa tecnología olvidando a usuarios que ni podrían agregar la página a favoritos, ni navegar correctamente, olvidaron el posicionamiento en los buscadores, olvidaron muchas cosas… como algunos quizás también olviden ahora que su proyecto no necesariamente ha de ser 2.0.

También sucedió con los portales de Internet, como Terra, Yahoo o MSN, en que daba la sensación que quien tuviera mas secciones, minisecciones, subminisecciones, microsecciones de las minisecciones seccionadas en partes que… bueno, tres mil millones de enlaces por toda la página en diminuto, tendría mas éxito, en realidad, generaban el caos mas absoluto por no encontrar lo que uno quiere… cuantas veces me pregunté a mi mismo como usuario de esos portales, porqué no ponían de forma mas clara las secciones. Finalmente, y por suerte, esa moda pasó a mejor vida, aun la siguen los portales mas grandes, quizás les da “prestigio”, quizás es SEO, pero aunque a ellos eso les pueda ser útil, cada web ofrece un servicio diferente, y eso es lo que no debemos olvidar.

En la tecnología Web 2.0, estoy seguro de que habrá webs basadas en ella que tienen y tendrán éxito, y otras que añadiendo algún detalle de ese sistema incluso mejoren, pero dudo que el uso abusivo de esta nueva moda de buenos resultados en todos los proyectos web, así que al contrario que las páginas dinámicas que si vienen bien a todo el mundo, es posible que no estemos mas que ante otra moda…