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>
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


0