Inspirado por el artículo de Moisés sobre Flash y Visual basic ahora yo quiero compartirles un poco de las cosas que uno aprende en el trabajo diario, esta vez será el uso de archivos XML dentro de Visual Basic 6.
Los archivos XML pueden utilizarse para guardar y organizar información. No sustituyen el uso de bases de datos en cuanto a velocidad, pero su punto fuerte radica en que son sencillos e incluso legibles para las personas, no son formatos binarios de 1100110101 que sólo entienda la computadora.
Para quien no los conozca es algo más o menos así:
<Alertas>
<Mensaje>
<ID>001</ID>
<Texto>Texto del mensaje</Texto>
<Imagen>Imagen1.jpg</Imagen>
</Mensaje>
<Mensaje>
<ID>002</ID>
<Texto>Otro mensaje</Texto>
<Imagen>Imagen2.jpg</Imagen>
</Mensaje>
</Alertas>
Ahora vamos al grano, cómo se usan en VB6.
Primero tenemos que agregar a nuestro proyecto la referencia al dll de XML de Microsoft.
Abrimos el menú de referencias en vb
y buscamos el “Microsoft XML, v3.0”
Yo recomiendo la versión 3, porque es “viejita” (osea que ya va a estar instalada en muchos equipos) y porque es suficiente para las operaciones básicas.
Ahora, para crear un documento XML basta con declararlo y crearlo de esta forma:
Dim documento As MSXML2.DOMDocument30
Set documento = New DOMDocument30
Ya creado, podremos por ejemplo abrir un archivo:
documento.Load("archivo.xml")
O cargar XML desde un string
documento.loadXML ("<Documento></Documento>")
Esta última instrucción en especial me es útil para crear un documento desde cero.
También vamos a necesitar declarar objetos de tipo “nodo”
Dim nodo As MSXML2.IXMLDOMNode
Y objetos tipo “lista de nodos”
Dim listaNodos As MSXML2.IXMLDOMNodeList
Estos objetos nos ayudarán a mantener referencias a la información que necesitemos dentro de la estructura del XML.
Dentro de un XML podemos leer la información seleccionando datos, por ejemplo podemos hacer búsquedas y obtener el resultado en un objeto IXMLDOMNodeList, con esta instrucción:
set listaNodos = nodo.selectNodes("prueba")
Esto nos devolverá una lista de nodos con los que podemos trabajar, en este caso todos los nodos que se llamen “prueba”.
Existen otros comandos que nos permiten navegar por los nodos de un documento XML.
nodo.baseName 'Devuelve el nombre del nodo
nodo.childNodes
'Permite acceder a los "hijos" de este nodo, de la misma manera se puede saber el numero de hijos con nodo.childNodes.length o acceder a un "hijo" con nodo.childNodes(x) (x es el numero del hijo, empezando desde cero).
nodo.firstChild
'es equivalente a nodo.childNodes(0)
nodo.parentNode
'apunta hacia el padre de este nodo
nodo.Text
'devuelve el contenido de texto de un nodo (por ej. <nodo> texto </nodo> )
Set nodo2 = nodo.appendChild(documento.createElement("Datos"))
'Esta instruccion crea un elemento y lo agrega dentro del objeto "nodo", el "set" es para que al final de la instrucción nos devuelva en "nodo2" una referencia al nodo recién creado.
Y para terminar la función más importante, con la que grabas un XML.
documento.save("archivo.xml")
Con estos comandos básicos es suficiente para crear y guardar documentos, archivos de configuración y otras monerías para tus programas, si necesitas ayuda o tienes alguna duda, para eso son los comentarios!
Necesito saber como pasar parametros a un web service creado en visual .net, el problema es el siguiente, a ese web service, se le pasa como parametro un Dataset y el cliente que estoy desarrollando debe ser desarrollado en VB6, como le paso un dataset?? a ese web service???
[…] Manejo de XML en Visual Basic 6 Comparte y disfruta: These icons link to social bookmarking sites where readers can share and discover new web pages. […]
Mi humilde opinión es que para que sea interoperable no debes usar tipos de Datos complejos (DAtaSet), esto funciona unicamente entre aplicaciones .net es decir el cliente debería tambien estar en .net.
Para solucionar esto, deberías hacer un array de entidades o algo así.
Espero te haya servido.
Antes que nada, no tengo mucha experiencia con el manejo de los XML, mi intención únicamente era compartir con la gente algunas funciones que permiten a tus aplicaciones el utilizar archivos xml para guardar datos.
Desde mi punto de vista, si los archivos de datos son únicamente para tu aplicacion, no importa mucho la interoperabilidad. Tu decides el formato y lo utilizas a tu antojo.
Gracias por compartir esto. Utilizimo
No me funsiona el listado de los nodos. No podrias poner un ejemplo sencillo pero completo, recorriendo una lista de nodos y obteniendo los dados ? Gracias
Orale vos lo voy a probar
por favor un ejemplo basico de como sacar informacion de una tabla y colocarla en un archivo xml para luego subirlo a una web.
gracias por su ayuda
Muy mal explicado, y con falta de detalles y ejemplos claros y simples.
lastima que el comentario, no tuvo la intencion de contribuir a la mejoria de la nota por ej posteando un link hacia un articulo mas completo en tal caso.
Slds
Pd: comparto un link que estoy revisando ahora sobre el tema
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/100-ejemplo-xml-visual-basic.htm
En parte tiene razón, ahora que lo veo y comparo con los conocimientos que tengo, estaba en pañales definitivamente. Aunque aun me falta mucho por aprender.
Tal vez después haga un tutorial actualizado.
Me pareció interesante este artículo, va directo al objetivo en el manejo del XML
Gracias!!
Saludos!!
Gracias por la aportacion. me gustaria profundizar en el tema, me podrias decir donde encuentro la informacion de propiedades, clases y metodos de esta libreria? te lo agradezco, saludos.
Pues yo normalmente utilizo el objeto “empíricamente”, osea, escribo “objeto.” y todo lo que aparezca despues del punto empiezo a explorarlo y ver las funciones y propiedades del objeto.
No tengo ninguna experiencia en xml, pero quisiera saber si es posible dar un ejemplo concreto. Por ejemplo: si tengo el nombre de una persona: “Ricardo Pérez” y su domicilio:”Calle No.”, en concreto cómo lo transfiero a xml ?
Desde ya gracias por la ayuda
Excelente desarrollo del tema, por favor podrias poner un ejemplo de como leer un xml desde visual basic 6.0 y en enviar los datos del xml a excel
Gracias, Saludos
Muy buen tutorial. Llevaba navegando varias horas buscando un comienzo conciso y claro y aqui lo encontré. Para desarrollarme en el tema me basto solo pero este no es un buen comienzo. Es un gran comienzo. Gracias.
Saludos, queria saber como encvio un xml a un webservice como string, uso el formato del soap que recibe el string
pero al enviarle un string con “” de xml, no lo envia y no lo reconoce las variables MSXML2, que puedo hacer?
Gracias, Slds
en la parte que dice string me refiero a las < tags para abrir los nodos xml
Que tal, leyendo el foro me doy cuenta que tu podrías ayudarme, fijate que creo el XML pero necesito poner un prefijo a todos los nodos desde el raiz, me podrias decir en que propiedad asigno esto porfavor ya que he intentado con node.prefix pero es de solo lectura.
Saludos.