Internet explorer necesita lineas especiales. Hay una que esta comentada con // porque en realidad todo me funciona sin necesidad de esa linea.
Podes no usar ajax, quizas, pero fijate que no es dificil con ajax. La estructura es:
Cita: $.ajax({
type: "POST",
url: "direccion.xml",
async: false,
dataType: "text",
success: function(data) { },
error: function(data) { }
})
En success aplicas la conversion del archivo xml en algo que puedas manejar con jquery / javascript. Eso es lo que parece lioso, que en mi ejemplo esta puesto dentro de una funcion.
data representa al archivo xml que leemos con ajax. Pero para poder usarlo necesitamos convertirlo en html. Con esta funcion, mirá:
Cita: function stringToDoc(s) {
var xml;
if (window.ActiveXObject) {
xml = new ActiveXObject('Microsoft.XMLDOM');
xml.async = 'false';
xml.loadXML(s);
return xml;
}
else
xml = (new DOMParser()).parseFromString(s, 'text/xml');
return (xml && xml.documentElement && xml.documentElement.tagName
!= 'parsererror') ? xml : null;
};
xml = stringToDoc(data);
recorda que "data" es lo que obtuvimos desde ajax. Ahora lo procesamos con una funcion, que se resuelve asi:
A partir de ahi podes manejar el objeto xml de manera muy simple. Por ejemplo, yo leia titulo y descripcion desde un xml. Y la publicaba con un each:
Cita: $(xml).find('item').each(function(){
titulo_bruto = $(this).find('titulo').text(); // aqui se seleccionan valores de un xml
descripcion = $(this).find('descripcion').text();
titulo = "<p><strong>"+titulo_bruto+"</strong>" + "<p>"+descripcion+"</p></p>";
}); // fin de each (archivo descripciones.xml)