Saltearse al contenido

JSON a XML

Este modulo convierte datos JSON a formato XML usando la libreria fast-xml-parser. Ofrece amplia configuracion para controlar la salida XML: nombre del elemento raiz, indentacion, declaracion XML, manejo de atributos con prefijos personalizados, y campos CDATA. Puede procesar toda la entrada o un campo especifico indicado por data_key. Es ideal para integraciones con sistemas que requieren XML, como servicios SOAP, facturacion electronica, o intercambio de datos EDI.

ParametroTipoRequeridoDescripcion
data_keytextNoRuta al campo JSON a convertir (ej: payload.order). Dejar vacio para usar toda la entrada.
root_nametextNoNombre del tag raiz del XML. Por defecto root.
declarationbooleanNoSi es true, agrega <?xml version="1.0" encoding="UTF-8"?> al inicio. Por defecto true.
indentselectNoIndentacion del XML: 2 espacios, 4 espacios, tabulador o sin indentacion (compacto). Por defecto 2 espacios.
cdata_keystextNoCampos que deben envolverse en CDATA, separados por coma (ej: description,body_html).
attribute_prefixtextNoPrefijo para convertir claves en atributos XML. Por defecto _attr_. Ejemplo: _attr_id genera <tag id="...">.
output_keytextNoNombre del campo donde guardar el XML resultante. Dejar vacio para devolver {xml: '...', original: {...}}.
{
"nextModule": "siguiente_modulo",
"data": {
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<order>\n <id>123</id>\n <total>99.99</total>\n</order>",
"original": { "id": 123, "total": 99.99 }
},
"_meta_": {
"rootElement": "order",
"xmlLength": 95,
"hadCdata": false
}
}
{
"data_key": "payload",
"root_name": "invoice",
"declaration": true,
"indent": " ",
"cdata_keys": "description,notes",
"output_key": "xml_output"
}
  • Utiliza la libreria fast-xml-parser (XMLBuilder) para la generacion
  • Los campos CDATA se envuelven recursivamente en objetos anidados
  • Las claves con el prefijo de atributos se convierten en atributos XML del elemento padre
  • Si data_key no se encuentra en los datos, se retorna error
  • El _meta_ incluye el nombre del elemento raiz, longitud del XML y si se usaron CDATA
  • Para la operacion inversa (XML a JSON), usar el modulo xmlToJson
  • xmlToJson (operacion inversa: XML a JSON)
  • jsonToToon (conversion a formato TOON)
  • dataset (preparar datos antes de convertir a XML)