Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
Cargue el archivo xml local de forma asíncrona en el navegador Chrome

Estoy tratando de cargar un archivo xml/xsl local en una variable para editarlo. El siguiente código funciona con IE y Chrome. Pero Chrome da una advertencia ya que esta llamada es síncrona.

 function loadXMLDoc (file name){ If (window.ActiveXObject){ xhttp = new ActiveXObject(“Msxml2.XMLHTTP”); } else { xhttp = new XMLHttpRequest(); } xhttp.open(“GET”,filename, false); // false is synchronous xhttp.send(); var xml = xhttp.responseXML; return xml; }

Pero si hago que esto se asincronice cambiando esta llamada.

 xhttp.open(“GET”,filename, false);

a la verdad

 xhttp.open(“GET”,filename, true);

o llamar por defecto.

 xhttp.open(“GET”,filename);

No funciona en Chrome y da error en la consola.

el código original funciona en IE pero no funciona en Chrome.

Quiero arreglar esta función o escribir un método diferente que pueda cargar un xml/xsl asíncrono local y obtener xml/xsl en una variable en cromo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si desea cargar XML para el procesamiento XSLT, entonces, para atender a IE, si es necesario, creo que puede configurar xhttp.responseType = 'msxml-document' .

En cuanto al procesamiento asíncrono y la "devolución" del documento, considere las promesas, por ejemplo

 function loadDoc(url) { return new Promise(function(resolve) { var req = new XMLHttpRequest(); req.open("GET", url); if (typeof XSLTProcessor === 'undefined') { try { req.responseType = 'msxml-document'; } catch (e) {} } req.onload = function() { resolve(this.responseXML) } req.send(); }); }

entonces puede hacer, por ejemplo, loadDoc('sample.xml').then(function(doc) { ... }) o para XML y XSLT

 Promise.all([loadDoc(xmlUrl), loadDoc(xslUrl)]).then(function(data) { var xmlDoc = data[0]; var xslDoc = data[1];

Las promesas no se admiten de forma nativa en IE, pero se pueden agregar mediante un polyfill

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!