• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

306
Vistas
Estoy tratando de escribir un archivo XML como una tabla en una página HTML dentro de un div con id "div1" pero no puedo hacer que la tabla aparezca en la página

Entonces, estoy tratando de escribir un archivo XML como una tabla en una página HTML dentro de un div con id "div1", pero no puedo hacer que la tabla aparezca en la página y estoy atascado. No tiene que estar necesariamente dentro de un div, pero tiene que aparecer como una tabla HTML en la página... Soy nuevo en javascript y tengo problemas para encontrar una solución, pero hay muy pocos ejemplos similares en línea, así que espero que alguien pueda ayudar... XML LA MESA DEBE VERSE ASÍ

Esta es la página HTML....

 <!DOCTYPE html> <html> <head> <title>kol2</title> </head> <body> <div id="div1"></div> <script src="kol2.js"></script> </body> </html>

Aquí está el archivo XML...

 <?xml version="1.0"?> <nekretnine xmlns:h="http://www.nekretnine.hr"> <h:nekretnina> <h:ID>1211</h:ID> <h:Adresa>Vukovarska 121</h:Adresa> <h:Grad>Zagreb</h:Grad> <h:Tip>Stan</h:Tip> </h:nekretnina> <h:nekretnina> <h:ID>2123</h:ID> <h:Adresa>Horvatova 13</h:Adresa> <h:Grad>Biograd</h:Grad> <h:Tip>Kuća</h:Tip> </h:nekretnina> </nekretnine>

Y aquí está el código javascript que tengo hasta ahora...

 if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","nekretnine.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.write("<table border='1'>"); var x=xmlDoc.getElementsByTagName("nekretnina"); for (i=0;i<x.length;i++) { document.write("<tr><td>"); document.write(x[i].getElementsByTagName("ID")[0].childNodes[0].nodeValue); document.write("</td><td>"); document.write(x[i].getElementsByTagName("Adresa")[0].childNodes[0].nodeValue);document.write("</td><td>"); document.write(x[i].getElementsByTagName("Grad")[0].childNodes[0].nodeValue);document.write("</td><td>"); document.write(x[i].getElementsByTagName("Tip")[0].childNodes[0].nodeValue); document.write("</td></tr>"); } document.write("</table>");
almost 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Probablemente esté buscando una manera de crear dinámicamente una tabla desde xml, algo como lo siguiente (lo explicaré en línea):

 xml = `<?xml version="1.0"?> <nekretnine xmlns:h="http://www.nekretnine.hr"> <h:nekretnina> <h:ID>1211</h:ID> <h:Adresa>Vukovarska 121</h:Adresa> <h:Grad>Zagreb</h:Grad> <h:Tip>Stan</h:Tip> </h:nekretnina> <h:nekretnina> <h:ID>2123</h:ID> <h:Adresa>Horvatova 13</h:Adresa> <h:Grad>Biograd</h:Grad> <h:Tip>Kuća</h:Tip> </h:nekretnina> </nekretnine> `; //since you're parsing xml, we'll use xpath to search it; first create //a helper function for that: const docEval = (doc, expr, context) => doc.evaluate(expr, context, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); //parse the xml string domdoc = new DOMParser().parseFromString(xml, "text/xml"); //locate the place in the html table where the result will be inserted dest = document.querySelector("#theTable"); //locate the data neks = docEval(domdoc, './/*[local-name()="nekretnina"]', domdoc); for (let i = 0; i < neks.snapshotLength; i++) { //open the table row row = `<tr>`; let nek = neks.snapshotItem(i); entries = docEval(domdoc, ".//*", nek); for (let i = 0; i < entries.snapshotLength; i++) { let entry = entries.snapshotItem(i); info = docEval(domdoc, ".//text()", entry); //add the data to the row row += `<td>${info.snapshotItem(0).nodeValue}</td>`; } //close the row row += `</tr>`; //insert the row in the destination dest.insertAdjacentHTML("beforeend", row); }
 <table id='theTable' border='1'><tr><td>ID</td><td>Adres</td><td>Grad</td><td>Tip</td></tr></table>

almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda