Pregunta

Este es un problema bastante simple pero no puedo encontrar una solución. Escribo un xml en un div oculto en la página y lo leo más tarde. El problema es que algunas comillas se están eliminando al escribir en el div y, debido a esto, no puedo cargar el uso del xml en IE usando LoadXML

este es el XML

<parameters id='XXX'>
<product_id value='YYY'/>
<report_id value='ZZZ'/>
<list>
    <filter_id value='AAA'/>
</list>
<date_begin value='BBB'/>
<date_end value='CCC'/>
<timeframe_id value='DDD'/>
<chart_id value='EEE'/>

He usado muchos métodos diferentes, pero ninguno parece funcionar. Estoy tratando de usar JQUERY tanto como sea posible para evitar problemas entre navegadores, pero cualquier solución funcionará.

Agrego el xml, en una variable de cadena paramString, arriba usando

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";

y va bien.

sin embargo, cuando intento recuperarlo, las citas alrededor de XXX se eliminan en IE. Por lo tanto no puedo cargarlo usando loadXML (). Podría hackear una solución, pero me gustaría hacerlo correctamente.

Cualquier solución sería útil, ya he perdido casi un día en esto.

Gracias

JD

¿Fue útil?

Solución

Intente usar comillas dobles y vea si eso hace el trabajo.

Si no, otra solución a su problema podría ser obtener el XML a través de un XMLHttpRequest (Ajax).

jQuery.ajax({
  url: 'yourUrlThatReturnsXML',
  dataType: 'xml',
  success: function (data, textStatus) {
   $(data); // Your XML
  }
});

Otros consejos

¿Cómo estás insertando estos divs ocultos en la página? Presumiblemente estás usando innerHTML (dado que tienes una cadena), pero esto significa que se está pasando a través del analizador HTML de IE. Esto lo convertirá en HTML (no válido), y cuando intentes recuperarlo verás el efecto que describes de los atributos que no están citados (y probablemente otros efectos secundarios que no hayas encontrado ... todavía).

Su mejor apuesta es guardar una referencia al documento XML devuelto (no una serialización del mismo) en una variable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top