Foros del Web » Programando para Internet » Javascript » Frameworks JS »

responseXML nunca funciona

Estas en el tema de responseXML nunca funciona en el foro de Frameworks JS en Foros del Web. estimados, el error es ese si hago responseText me devuelve todo pero necesito el xml asi empiezo a parsearlo les dejo el codigo a ver ...
  #1 (permalink)  
Antiguo 09/05/2007, 15:43
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 1 mes
Puntos: 1
responseXML nunca funciona

estimados, el error es ese
si hago responseText me devuelve todo pero necesito el xml asi empiezo a parsearlo
les dejo el codigo a ver si alguien me puede dar una mano

Código HTML:
function previsualizar_producto(id_producto){
	var contenedor = document.getElementById('previsualizar_producto');
	var codigo = document.getElementById('previsualizar_producto_codigo');
	var descripcion = document.getElementById('previsualizar_producto_descripcion');
	
	var str = "id_producto=" + id_producto;
	conexion=crearXMLHttpRequest();
	conexion.open('POST', '/ajax_artist_preview.php',true); 
	conexion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
	conexion.onreadystatechange = function(){
		if (conexion.readyState == 4) { 
			alert(conexion.responseXML);
		}
	} 
	conexion.send(str);
}
Código HTML:
function crearXMLHttpRequest() 
{
  var xmlHttp=null;
  if (window.ActiveXObject) 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (window.XMLHttpRequest) 
      xmlHttp = new XMLHttpRequest();
  return xmlHttp;
}
y el arrchivo producto.php es....

Código PHP:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"?>
<producto>
    <id_producto>id_producto</id_producto>
    <codigo>codigo</codigo>
    <titulo>titulooo</titulo>
    <descripcion>titulooo</descripcion>
</producto>
perdon lo extenso, pero no logro encontrarle el error. gracias!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 10/05/2007, 00:48
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 9 meses
Puntos: 62
Re: responseXML nunca funciona

prueba con:

alert(conexion.responseXML.documentElement);

http://www.programacionweb.net/artic...iculo/?num=391
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 10/05/2007, 09:39
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 1 mes
Puntos: 1
Re: responseXML nunca funciona

tampoco :(
me da

conexion.responseXML has no properties
[Break on this error] alert(conexion.responseXML.documentElement);
__________________
On error no hago nada porque deje de fumar...
  #4 (permalink)  
Antiguo 10/05/2007, 10:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: responseXML nunca funciona

Bueno, si usas PHP (yo no manejo PHP pero me lo comentaron...) podrias usar header("Content-type: text/xml"); io tenia un problema como el tuyo, pero en un JSP, que no me funcionaba el responseXML, el asunto era que el objeto que recivia no era en si un XML, en mi caso lo solucione solo colocando como primera linea de código en el archivo solo <?xml version="1.0" encoding="UTF-8"?>, que notaras no lleva PHP ni JSP ni nada, solo asi como la puse, a mi me sirvio...espero tengas suerte ya sea con :
-header("Content-type: text/xml");
ó
-<?xml version="1.0" encoding="UTF-8?>

Saludos.
__________________
Wow! No se que decir...
  #5 (permalink)  
Antiguo 10/05/2007, 10:13
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 1 mes
Puntos: 1
Re: responseXML nunca funciona

si te fijas en el codigo que puse el archivo producto.php
tiene eso en la primera linea!!
es rarisimo lo primero que pense fue lo que dijiste vos pero.. parece que tampoco es eso...
__________________
On error no hago nada porque deje de fumar...
  #6 (permalink)  
Antiguo 10/05/2007, 10:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: responseXML nunca funciona

si lo vi, lo mandas a imprimir con el ECHO de PHP, tambien hacia eso io con mi P, mandava un print con esa linea y no me funcionaba, tal vez intentalo poner como cabezera de tu documento sin usar PHP, como te lo puse, a mi me funciono asi :P
__________________
Wow! No se que decir...
  #7 (permalink)  
Antiguo 10/05/2007, 14:09
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 9 meses
Puntos: 62
Re: responseXML nunca funciona

lo que no entiendo es porque usas php para escribir texto plano:

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>

usa php unicamente cuando sea necesario asi te ahorraras quebraderos de cabeza con las comillas etc.

;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #8 (permalink)  
Antiguo 11/05/2007, 07:29
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 1 mes
Puntos: 1
Re: responseXML nunca funciona

zyon: agregue header("Content-type: text/xml"); ademas de
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>

y ahora funciona perfecto!!
millon de gracias! era eso nomas
__________________
On error no hago nada porque deje de fumar...
  #9 (permalink)  
Antiguo 11/05/2007, 14:24
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: responseXML nunca funciona

que bueno uqe ya te funciono, pero apoyo a ZITAL, no era necesario escribir
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>, solo con <?xml version="1.0" encoding="UTF-8?> hubiese sido suficiente, pero que bueno que te funciono ya!!!
__________________
Wow! No se que decir...
  #10 (permalink)  
Antiguo 17/05/2007, 22:32
 
Fecha de Ingreso: enero-2006
Mensajes: 47
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola

esto es lo que tu tienes escrito

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<producto>
<id_producto>id_producto</id_producto>
<codigo>codigo</codigo>
<titulo>titulooo</titulo>
<descripcion>titulooo</descripcion>
</producto>

pero tienes un error
el codigo php seria.

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">";
echo "<producto>";
echo utf8_encode("<id_producto>id_producto</id_producto>");
echo utf8_encode("<codigo>codigo</codigo>");
echo utf8_encode("<titulo>titulooo</titulo>");
echo utf8_encode("<descripcion>titulooo</descripcion>");
echo "</producto>";
?>

Ahh cuidado
si le das aert(peticion.responseXML);
no se te va a mostrar ya que te va a decir que lo que tiene es un objeto xml;

para mostar la informacion vas que tener que recorrer el xml por los nombre de las etiquetas

ejemplo
peticion.responseXML.getElementsByTagName("id_prod ucto");
  #11 (permalink)  
Antiguo 18/05/2007, 03:10
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 9 meses
Puntos: 62
Re: responseXML nunca funciona

yo lo haría asi:
Código:
<?xml version="1.0" encoding="UTF-8?>
<producto>
<id_producto><?php echo utf8_encode($id_producto); ?></id_producto>
<codigo><?php echo utf8_encode($codigo); ?></codigo>
<titulo><?php echo utf8_encode($titulo); ?></titulo>
<descripcion><?php echo utf8_encode($descripcion); ?></descripcion>
</producto>
suponiendo que los datos estan dentro de variables.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #12 (permalink)  
Antiguo 19/05/2007, 22:01
 
Fecha de Ingreso: enero-2006
Mensajes: 47
Antigüedad: 18 años, 11 meses
Puntos: 0
responseXML nunca funciona

Mira el codigo lo acabo de realizar y si pincha
espero que te ayude en algo

codigo del lado del cliente

<script language="javascript">
function getXMLHTTPRequest()
{
var req = false;
try
{
req = new XMLHttpRequest();
}
catch(err1)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err2)
{
try
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err3)
{
req = false;
}
}
}
return req;
}

var peticion = getXMLHTTPRequest();

function iniciarpeticion() {
var aleatorio=parseInt(Math.random()*99999999);
var url = "servidor.php?";
peticion.open("GET", url+ "&rand=" + aleatorio, true);
peticion.onreadystatechange = respuestaservidor;
peticion.send(null);
}

function respuestaservidor() {
if(peticion.readyState == 4) {
if(peticion.status == 200) {
var iproducto = peticion.responseXML.getElementsByTagName("id_prod ucto")[0];
var codigop = peticion.responseXML.getElementsByTagName("codigo" )[0];
var titulo = peticion.responseXML.getElementsByTagName("titulo" )[0];
var descripcion = peticion.responseXML.getElementsByTagName("descrip cion")[0];

alert("idproducto: "+iproducto.childNodes[0].nodeValue + " codigoP: "+codigop.childNodes[0].nodeValue );
alert("titulo: "+titulo.childNodes[0].nodeValue + " descripcion: "+descripcion.childNodes[0].nodeValue );
}
}
}
</script>

codigo del lado del servidor

<?php
$id = 1;
$codigo = "wert123t";
$titulo = "AJAX in Action.";
$descripcion = "Libreo sobre AJAX.";
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" ?>";
echo '<producto>';
echo utf8_encode("<id_producto>$id</id_producto> ");
echo utf8_encode("<codigo>$codigo</codigo>");
echo utf8_encode("<titulo>$titulo</titulo>");
echo utf8_encode("<descripcion>$descripcion</descripcion>");
echo '</producto>';
?>

y como te dije si funciona por que lo probe
  #13 (permalink)  
Antiguo 20/05/2007, 07:35
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 1 mes
Puntos: 1
Re: responseXML nunca funciona

si si funciona tambien ahi lo vi
gracias!
lo que me faltaba era: header('Content-Type: text/xml');
__________________
On error no hago nada porque deje de fumar...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:35.