Subir un archivo
  1. base64hub
  2. Herramientas de texto
  3. XML a Base64

XML a Base64: codificar documentos XML

Pega un documento XML y obtén su Base64. Elige el juego de caracteres que coincide con la declaración encoding del documento, para que el parser receptor lea los mismos caracteres que escribiste.

Gratis sin registro, sin límites Local no se sube nada Actualizado 27 oct 2026
Entrada 0 BSalida 0 BTamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo codificar XML a Base64

  1. Pega el documento XML en Entrada · texto, o pulsa Ejemplo para cargar uno pequeño.
  2. Pon en Juego de caracteres la codificación que indica la declaración XML. UTF-8 viene seleccionado y es lo correcto para la mayoría de los documentos.
  3. Copia el resultado de Salida · Base64. Deja Ajuste de línea en Ninguno para campos JSON y HTTP; algunos protocolos basados en XML aceptan líneas de 76 caracteres.
  4. Descargar guarda el Base64 como base64.txt.

El ejemplo, una declaración XML seguida de un elemento <note>, se codifica en una cadena que empieza por PD94bWwg, que es el Base64 de <?xml . Casi todos los documentos XML con declaración empiezan así, lo que hace fácil reconocer el XML codificado. Base64 a XML lo vuelve a decodificar.

Haz coincidir el juego de caracteres con la declaración XML

Un parser XML decide cómo leer los bytes a partir del atributo encoding de la declaración (o de una marca de orden de bytes). Si los bytes y la declaración no coinciden, el receptor lee caracteres distintos de los que escribiste.

DocumentoJuego de caracteres usado aquíBase64El parser lee
<?xml version="1.0" encoding="ISO-8859-1"?><n>café</n>ISO-8859-1PD94bWwg...PjxuPmNhZuk8L24+café
El mismo documentoUTF-8PD94bWwg...PjxuPmNhZsOpPC9uPg==café

La segunda fila es un error de integración clásico: el texto se guardó como UTF-8 pero sigue declarando Latin-1. Elige aquí el juego de caracteres declarado o, mejor, cambia la declaración a UTF-8 y usa UTF-8 en todas partes.

Por dónde viaja el XML en Base64

  • API SOAP y REST que aceptan un documento XML completo dentro de un campo JSON o XML, para que sus ángulos y comillas no necesiten escape. Los servicios de factura electrónica y EDI suelen recibir así las facturas (por ejemplo, documentos UBL).
  • Inicio de sesión único con SAML. Una respuesta SAML es un documento XML, codificado en Base64 y enviado por el navegador. El decodificador SAML convierte los valores SAMLResponse y SAMLRequest de nuevo en XML.
  • Configuración y secretos. Los archivos de configuración XML guardados en variables de entorno o en Secrets de Kubernetes van en Base64 para que quepan en una línea.

Cuando un documento está firmado digitalmente (XML-DSig, que se usa en SAML y en muchos sistemas de factura electrónica), codifica exactamente los bytes que recibiste o generaste. Cambiar la sangría o los finales de línea, o volver a guardar el archivo en un editor, puede invalidar la firma aunque el XML signifique lo mismo.

Tamaño y ajuste de línea

Base64 añade alrededor de un 33 % al documento. El XML ya es prolijo de por sí, así que los documentos grandes suelen comprimirse con gzip antes de codificarlos; la herramienta de gzip y Base64 hace los dos pasos. El Ajuste de línea a 76 caracteres lo aceptan los transportes basados en MIME y la mayoría de los validadores de XML Schema para el contenido xs:base64Binary. Las API basadas en JSON suelen esperar una sola línea sin cortes.

XML a Base64 en código

Lee el archivo como bytes y codifica esos bytes, para que la declaración y los bytes no puedan separarse:

import base64

with open("invoice.xml", "rb") as f:
    b64 = base64.b64encode(f.read()).decode("ascii")
// Node.js
const fs = require("fs");
const b64 = fs.readFileSync("invoice.xml").toString("base64");

En Linux, base64 -w 0 invoice.xml imprime la misma línea única. Consulta Base64 en Python y Base64 en Node.js para procesar archivos grandes por streaming.

Preguntas frecuentes

¿Cómo convierto un archivo XML a Base64?

Pega el XML arriba y copia el resultado. Con archivos, codifica los bytes en bruto en lugar de volver a escribir el texto: base64.b64encode(open("doc.xml", "rb").read()) en Python, o base64 -w 0 doc.xml en Linux.

¿Qué juego de caracteres elijo para XML?

El de la declaración XML. <?xml version="1.0" encoding="UTF-8"?> o la ausencia del atributo encoding significan UTF-8, el valor por defecto. Si dice ISO-8859-1 o Windows-1252, elige ese, o cambia la declaración a UTF-8.

¿Puedo reformatear el XML antes de codificarlo?

Solo si nada depende de los bytes exactos. La sangría cambia el Base64 y, en XML firmado (aserciones SAML, facturas firmadas), puede romper la firma.

¿Dónde encaja xs:base64Binary?

Ese tipo de XML Schema es el caso contrario: Base64 dentro de un elemento XML, que se usa para incrustar archivos en mensajes SOAP y facturas. Codifica el archivo con Archivo a Base64 y pega el resultado en el elemento.