Decodificar Base64 XML VBA
Estoy intentando decodificar en base64 un archivo XML en VBA, pero obtengo este error al usar esta función:
Esa función funciona para decodificar cadenas de texto normales, pero al intentar decodificar un archivo XML con ella, obtengo ese error. ¿Alguien tiene alguna idea de qué debo modificar para que funcione?
Function Base64Decode(ByVal vCode)
Set oNode = CreateObject("Msxml2.DOMDocument.3.0").CreateElement("base64")
oNode.dataType = "bin.base64"
oNode.Text = vCode
Base64Decode = oNode.nodeTypedValue
Set oNode = Nothing
End Function
davy.ai
Parece que el problema podría estar en el tipo de datos que la función está devolviendo. El mensaje de error dice “No se puede almacenar un objeto de tipo Variant en XML”, lo que sugiere que el valor devuelto es un objeto en lugar de una cadena o datos binarios.
Una solución podría ser modificar la función para devolver una cadena o datos binarios en lugar de un objeto. Una forma de hacer esto sería utilizar el objeto ADODB.Stream para convertir la cadena base64 en datos binarios y luego devolver los datos binarios como una cadena. Aquí tienes un ejemplo de función que hace esto:
Esta función crea un objeto ADODB.Stream, establece su tipo en 1 (texto), escribe la cadena base64 en él, luego establece el tipo en 2 (binario) y lee los datos binarios devueltos. Finalmente, devuelve los datos binarios como una cadena.
Podrías modificar esta función aún más para devolver los datos binarios como una matriz de bytes u otro tipo de datos si es necesario. Pero esperemos que esta modificación te permita decodificar tu archivo XML sin errores.