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.














