Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Creando una respuesta XML usando el nodo JS de JSON

Estoy buscando crear un esquema XML a partir de una matriz en el objeto. La longitud de la matriz varía y, en base a eso, me gustaría crear una lógica que genere la respuesta. A continuación se muestra el formato y el ejemplo.

 Object - Exact "Data": [{ "JK": true, "Number": "02154029", "Name": "Allen", "Type": "Delta", "Code": "ASM", "Amount": 10 }, { "JK": true, "Number": "92154429", "Name": "Peter", "Type": "Delta", "Code": "FLSM", "Amount": 50 }, . . . . "n items" ]

Arriba está el objeto que varía su longitud, usando el objeto anterior me gustaría crear el siguiente esquema XML.

 XML - Expected <request ...........> <delta.....> <lineItem id = 1....> </lineItem> <lineItem id = 2....> </lineItem> . . . <lineItem id = n....>(based on length of above array) </lineItem> <params amount = "10" code = "ASM" batch = "1"> <params amount = "50" code = "FLSM" batch = "2"> . . . . <params amount = n code = n batch = n>(based on length of above array) </delta> <keys number = "02154029" name = "Allen"> <keys number= "92154429" name = "Peter"> . . . <keys number= n name = n >(based on length of above array) </request>

Le pido que me ayude en esto, creando una lógica usando Javascript

Por favor, hágamelo saber para cualquier aclaración.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es un poco complicado, dado el resultado esperado, pero factible, usando una plantilla, un analizador json, DOMParser y querySelector:

 tmpl = `<doc> <request> <delta> </delta> </request> </doc>` const data = `[{ "JK": true, "Number": "02154029", "Name": "Allen", "Type": "Delta", "Code": "ASM", "Amount": 10 }, { "JK": true, "Number": "92154429", "Name": "Peter", "Type": "Delta", "Code": "FLSM", "Amount": 50 } ]` const jdata = JSON.parse(data); const xmldoc = new DOMParser().parseFromString( tmpl, 'text/xml' ); dest = xmldoc.querySelector('delta') counter = 1; for (let jd of jdata){ dest.insertAdjacentHTML( 'beforeend', `<lineItem id = "${counter}"> </lineItem> ` ); counter++; } for (let jd of jdata){ dest.insertAdjacentHTML( 'beforeend', `<params amount = "${jd.Amount}" code = "${jd.Code}"> </params> ` ); } for (let jd of jdata){ dest.insertAdjacentHTML( 'afterend', ` <keys number = "${jd.Number}" name = "${jd.Name}"> </keys> ` ); } alert(xmldoc.documentElement.innerHTML)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda