AJAX - Problema con AJAX y XML

 
Vista:

Problema con AJAX y XML

Publicado por Drumman (1 intervención) el 26/12/2007 20:17:15
Estoy colocando informacion generada en el servidor en formato XML en un combo. Esto funciona correctamente en Mozilla pero no en explorer. Algunos me comentaron que no funcionaba el document.createTextNode en IE, pero no es eso. Los elementos que agrego con createTextNode pero que no vienen del XML los veo perfectamente.
Copio el codigo: completo

<HTML>
<SCRIPT language="javascript">
var xmlDoc;
function crearObjetoXML(archivoXML){
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(archivoXML);
parsearXML();
}else if(document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.load(archivoXML);
xmlDoc.onload = parsearXML;
}
}

function parsearXML(){
var contenido = document.getElementById("contenido");
var longitudXML = xmlDoc.firstChild.childNodes.length;

document.getElementById("sel").innerHTML ="";
combito = document.getElementById("sel");

//agrego elemento a mano para probar
option = document.createElement( 'option' );
option.appendChild( document.createTextNode('-- seleccione Pais --'));
combito.appendChild( option );

//agrego elemento a mano para probar
option = document.createElement( 'option' );
option.appendChild( document.createTextNode('opcion cero'));
combito.appendChild( option );

for(var i=0;i<=longitudXML-1;i++){
//agrego los datos que llegan en el XML (esto no anda)
option = document.createElement( 'option' );
elemento = xmlDoc.firstChild.getElementsByTagName('pais')[i].getAttribute('desc');
option.appendChild( document.createTextNode(elemento));
document.getElementById("sel").appendChild( option );
}
}

</SCRIPT>

</HEAD>
<BODY onLoad="crearObjetoXML('probando.xml');">
<DIV id=contenido></DIV>

<DIV id=desc>
<SELECT name="sel" id="sel"> </SELECT>
</DIV>

</BODY>
</HTML>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con AJAX y XML

Publicado por Yamil Bracho (1 intervención) el 03/01/2008 03:56:07
Coloca un alert en el ciclo donde recorres el XML para ver que valores vienen y si IE lo esta interpretando bien o necesitas cambiar algun metodo u objeto DOM.
Pero te recomiendo que uses una biblioteca de Javascript como Prototype o JQuery que te manejan las diferencias entre browser... :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con AJAX y XML

Publicado por George (1 intervención) el 30/01/2008 18:02:45
Esta es una alternativa para instanciar el objeto XMLHttpRequest dependiendo del navegador que se esté usando:

function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
alert('ActiveX Object Explorer');
}
else
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
alert('XMLHttpRquest Mozilla');
}
return xmlHttp;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con AJAX y XML

Publicado por marovi (17 intervenciones) el 08/02/2008 19:00:08
Amiga.
Ya que estas trabajando con xml, create un archivo xslt y en este crea el html, lo retornar y utilizas innerHTML para agregarlo al control.

Puedes ver un ejemplo de esto en mi blogs

la url esta en url opcional.

pasa la voz. la url la actualizo cada mes con tres nuevos artículos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar