free web hostingHosting24.com web hosting

Como generar XML desde ASP

Según la Wikipedia, XML sigla en inglés Extensible Markup Language (lenguaje de marca ampliable) es un metaleguaje extensible desarrollado por la W3C (World Wide Web Consortium). Por lo tanto XML no es un lenguaje, sino una manera de definir lenguajes para diferentes necesidades. XML utilizamos como un estándar para el intercambio de información estructurada entre diferentes plataformas. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.
Para el caso práctico, vamos a generar XML a partir de ASP, para luego captar los datos del mismo desde Flash con un poco de ActionScript.
Lo vamos a desarrollar en tres pasos:

Si desean profundizar sus conocimientos en XML les dejo un tutorial creado por Alfredo Reino.

- 1º Generamos el XML a partir de ASP y debría quedarnos algo como esto.

dim SQL,rs, fso, archivo
SQL="Select Nombre, Apellido, DNI From Personas"

Set rs = Server.CreateObject("ADODB.Recordset")
Set rs= Conexion.execute(SQL)
Set fso = createobject("scripting.filesystemobject")
Set archivo = fso.CreateTextFile(Server.MapPath("Personas.xml"), True)
archivo.WriteLine("<?xml version='1.0' encoding='ISO-8859-1'?>")
archivo.WriteLine("<personas>")
If rs.RecordCount = 0 Then
archivo.WriteLine("</personas>")
Else
rs.MoveFirst
Do While Not rs.EOF
archivo.WriteLine("<persona nombre='" & rs("Nombre") & "' apellido='" & rs("Apellido")& "' dni='" & rs("DNI")"'/>")
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
archivo.WriteLine("</personas>")
archivo.Close
End If

En código anterior dimensionamos las variables y realizamos la conexion para ejecutar nuestra consulta:

dim SQL,rs, fso, archivo
SQL="Select Nombre, Apellido, DNI From Personas"
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs= Conexion.execute(SQL)

Con lo siguiente seteamos el objeto fso para luego asignarle a una varible con el nombre del XML a crear, de esta manera podemos escribir lo que querramos:

Set fso = createobject("scripting.filesystemobject")
Set archivo = fso.CreateTextFile(Server.MapPath("Personas.xml"), True)

Esta línea es fundamental para que, la aplicación desde donde queremos tener acceso, interprete que lo que esta dando lectura es un XML y su codificación correspondiente:

archivo.WriteLine("<?xml version='1.0' encoding='ISO-8859-1'?>")

Lo que sigue, es simplemente genera el contenido para nuestro XML, prestar atención a los comentarios:

archivo.WriteLine("<personas>") 'Iniciamos el nodo Padre
If rs.RecordCount = 0 Then  ' Si la consulta no arrojo resultados cerramos el nodo
archivo.WriteLine("</personas>")
Else
rs.MoveFirst
Do While Not rs.EOF ' bucle para recorrer los registros
archivo.WriteLine("<persona nombre='" & rs("Nombre") & "' apellido='" & rs("Apellido")& "' dni='" & rs("DNI")"'/>")
rs.MoveNext
Loop
rs.Close ' Cerramos el RecordSet
Set rs = Nothing 'Liberamos de memoria
archivo.WriteLine("</personas>") ' cerramos el nodo
archivo.Close 'Cerramos el XML- Importante para no escribir por error en el archivo
End If

- 2º Leer XML desde Flash

Ya hemos creado el XML, ahora es accesible desde multiples plataformas, entre ellas Flash. Vamos a ver como leer con un poco ActionScript los datos generados.

function procesa_personas(){
//declaro variables
var miXML:XML = new XML();
miXML.load("Personas.xml?r="+Math.random()); //cargo en el Objeto el XML
miXML.ignoreWhite = true;//ignora los nodos en blanco
miXML.onLoad = function(success){
//si no hubo ningun error cargo los arrays
if (success){
aNombres = new Array();
aApellidos = new Array();
aDNI = new Array();
//Cantidad de personas
aPersonas = this.firstChild.childNodes;
vTotal = aPersonas.length;
if  (vTotal>0){ //Pregunto si hay Personas a procesar
for (i=0; i<vTotal; i++) { //recorro el array
if (aPersonas[i].nodeName == "persona") {//A partir de aca cargo los datos en el array
// con push asigno los los nombres al array aNombres
aNombres.push(aPersonas[i].attributes.nombre);
aApellidos.push(aPersonas[i].attributes.apellido);
aDNI.push(aPersonas[i].attributes.dni);
}
}//Cierra el bucle for
}
}
};
}

De esta manera los datos de las personas lo disponemos en Arrays o Matrices (aNombres, aApellidos y aDNI), para darles uso a la información y cargar como por ejemplo en un componente Datagrid.

Les dejo alunos links para leer XML desde otras plataformas:
- con PHP
- con C#
- con Visual Basic
- con Visual FoxPro
- con Python
- con Java

También te puede Interesar

¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.

Comentarios

No hay comentarios todavía.

Deja un Comentario

(requerido)

(requerido)