Como puedo modificar esta macro para que extraiga datos de una sección CDATA de mi archivo .xml
Cordiales a todos.
Encontré este código muy útil en este grupo de TODOEXPERTOS el cual modifique a mis necesidades para extraer los datos de archivos xml a una hoja de Excel.
Sub Extraerdatos()
Dim MiPc, Carpeta, Archivos, Archivo
Dim y, Fila, estado
Application.ScreenUpdating = False
Fila = Range("A" & Rows.Count).End(xlUp).Row + 1
Set MiPc = CreateObject("Scripting.FileSystemObject")
Set Carpeta = MiPc.GetFolder(Range("B1").Value)
Set Archivos = Carpeta.Files
For Each Archivo In Archivos
If LCase(Right(Archivo.Name, 4)) = ".xml" Then
Workbooks.OpenXML Filename:=Archivo
y = 1: estado = ""
Do Until Cells(2, y) = ""
If Trim(Cells(2, y)) = "/estado" Then
estado = Cells(3, y)
End If
If Trim(Cells(2, y)) = "/fechaAutorizacion" Then
fecha = Cells(3, y)
End If
If Trim(Cells(2, y)) = "/numeroAutorizacion" Then
nAutorizacion = Cells(3, y)
End If
If Trim(Cells(2, y)) = "/comprobante/factura/infoTributaria/ruc" Then
ruc = Cells(3, y)
End If
y = y + 1
Loop
'--
Archivo = ActiveWorkbook.Name
ActiveWorkbook.Close
Range("A" & Fila) = Archivo
Range("B" & Fila) = estado
Range("C" & Fila) = fecha
Range("D" & Fila) = nAutorizacion
Range("E" & Fila) = ruc
Fila = Fila + 1
End If
Next
End SubEl problema surge en el momento que deseo extraer el dato de ruc el cual se encuentra dentro de una sección CDATA por lo que no lo reconoce. Adjunto el código del archivo .xml
<?xml version="1.0" encoding="UTF-8"?> <autorizacion> <estado>AUTORIZADO</estado> <numeroAutorizacion>1703201515411617921521270013730687438</numeroAutorizacion> <fechaAutorizacion>2015-03-17T15:41:16.486-05:00</fechaAutorizacion> <comprobante> <![CDATA[ <?xml version="1.0" encoding="UTF-8"?> <factura id="comprobante" version="1.0.0"> <infoTributaria> <ambiente>2</ambiente> <tipoEmision>1</tipoEmision> <razonSocial>UNNOCYCLES CIA. LTDA.</razonSocial> <nombreComercial>UNNOCYCLES CIA. LTDA.</nombreComercial> <ruc>1792152127001</ruc> </infoTributaria> </factura> ]]> </comprobante> </autorizacion>
Muchas gracias de antemano a todos los que se den el tiempo de leer mi inquietud.
1 respuesta
Respuesta de Elsa Matilde
1