Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/05/2006, 03:51
Avatar de mullins
mullins
 
Fecha de Ingreso: mayo-2006
Ubicación: Zaragoza
Mensajes: 14
Antigüedad: 17 años, 11 meses
Puntos: 0
Bueno lo primero seria agregar la referencia msxml 2.0 (referencias --> Microsoft XML, version 2.0)

Luego dimensionas el parser(analizador de xml) como:

Dim miXML As New MSXML.DOMDocument

Bueno, pongamos que tengo el siguiente xml

<?xml version = '1.0' encoding = 'ISO-8859-1'?>
<ROWSET>
<ROW num="1">
<COD>CQPDI138</COD>
<REFPROV>254873-B21</REFPROV>
<DESCRIP>DIMM 512MB SDRAM ECC 133Mhz</DESCRIP>
<PRECIO>256,41</PRECIO>
</ROW>
<ROW num="2">
<COD>CQPSE030</COD>
<REFPROV>230467-021</REFPROV>
<DESCRIP>TARJETA DE MEMORIA 32 MB IPAQ</DESCRIP>
<PRECIO>50,76</PRECIO>
</ROW>
</ROWSET>


Pues tenemos estas instrucciones:

miXML.documentElement.childNodes.Length --> nos daria el numero total de productos (en este caso dos) es decir dentro de rowset cuantos elementos ROW hay

miXML.documentElement.childNodes(indiceX).childNod es(indiceY).childNodes(0).xml
--> aqui accederia al producto indiceX (empezando desde 0) , a el nodo indiceY (tambien empezando desde 0) y luego childnodes(0).xml para acceder al contenido de cada elementos

un ejemplo de bucle para recorrer

for i=0 to miXML.documentElement.childNodes.Length
for j=0 to 3
debug.print miXML.documentElement.childNodes(i).childNodes(j). childNodes(0).xml
next j
next i


Es bastante lento si tienes muchos registros por eso yo uso un coponente activex (chilkat)