Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 08-feb-2008, 18:30   #1 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Triste Acceder a atributos de un XML con JavaScript

Holas, ahora me toco a mi plantear un problemilla , veran tngo un xml:
Código:
<?xml version='1.0' encoding='utf-8'?>
<personas>
    <persona code='001'>
      <nombre>Jessica</nombre>
      <apellido>Monge</apellido>
      <edad>22</edad>
      <sexo>F</sexo>
  </persona>
</personas>
Lo que yo quiero es acceder a el siguiente dato:code='001', es decir al atributo code, del nodo persona, jeje que he probado y no me tinca alguna idea por ahi, gracias...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 08-feb-2008, 18:49   #2 (permalink)
Colaborador
derkenuke llegará a ser famoso muy prontoderkenuke llegará a ser famoso muy prontoderkenuke llegará a ser famoso muy pronto
 
Avatar de derkenuke
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.462
Re: Acceder a atributos de un XML con JavaScript

Hola Bellenger:

Teóricamente documentoXML.getElementsByTagName("persona")[0].getAttribute("code") ¿no? Siempre que estés trabajando con AJAX y eso sea la respuesta de una lectura a un XML...

Saludos.
__________________
Inténtalo y búscalo siempre antes de preguntarlo
derkenuke está desconectado   Responder Citando
Antiguo 08-feb-2008, 21:11   #3 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Triste Re: Acceder a atributos de un XML con JavaScript

Caramba como te digo que probe eso y me sale [ null ], , jeje alguna otra idea...Gracias de todas maneras:
Código:
      var objXmlDom=objDom;
      alert(objXmlDom.getElementsByTagName("persona")[0].getAttribute("code"));
Ahi el codigo por si alguna duda...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 08-feb-2008, 23:44   #4 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.093
Re: Acceder a atributos de un XML con JavaScript

Hola:

Las respuestas ajax en documentos XML sería:
ajax.responseXML.documentElement.getElementsByTagN ame("persona")...

Pero siempre desde el atributo responseXML...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos esta en línea ahora   Responder Citando
Antiguo 09-feb-2008, 02:48   #5 (permalink)
Moderata
JavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradable
 
Avatar de JavierB
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 19.471
Re: Acceder a atributos de un XML con JavaScript

Movido al foro de AJAX desde JavaScript.

Saludos,
__________________
Lee las Políticas de los foros y escribe correctamente.
JavierB está desconectado   Responder Citando
Antiguo 09-feb-2008, 07:03   #6 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

Hola Caricatos, caramba como que no entendi muy bien lo que dices, podrias ser un poco mas especifico, fuera de eso, no necesariamente tiene que ser una respuesta Ajax, pues estoy parseando el doc xml como string en un documento, pero igual no funciona jeje, alguna idea por ahi...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 09-feb-2008, 07:55   #7 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.093
Re: Acceder a atributos de un XML con JavaScript

Cita:
Iniciado por Bellenger Ver Mensaje
Hola Caricatos, caramba como que no entendi muy bien lo que dices, podrias ser un poco mas especifico, fuera de eso, no necesariamente tiene que ser una respuesta Ajax, pues estoy parseando el doc xml como string en un documento, pero igual no funciona jeje, alguna idea por ahi...
Bueno, tú dirás si funciona o no... pero en el título del mensaje se habla de documento XML (Acceder a atributos de un XML)... y con javascript no se tiene acceso de ningún tipo de documento... y con ajax puedes aprovecharte de esa licencia... o sea, sin ajax la respuesta es rotunda: IMPOSIBLE; pero con ajax y documentos XML te he dado una respuesta que deberías considerar (no digo que sea la única )

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos esta en línea ahora   Responder Citando
Antiguo 09-feb-2008, 12:24   #8 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
Re: Acceder a atributos de un XML con JavaScript

En realidad, habría que definir bien qué es y que no ajax, y qué es javascript y qué no lo es. Con DOM nivel 2 es posible acceder a documentos xml vía javascript hasta en navegadores obsoletos como explorer 5 de MAC (en teoría, no lo probé), aunque extrañamente, el mismo navegador en windows sólo pueda hacerlo vía ActiveXObject. De todas formas, lo que no es necesario es utilizar el objeto XMLHttpRequest para eso, aunque es posible, por supuesto (y menciono XMLHttpRequest porque algunos lo consideran sinónimo de AJAX, cosa con la que no estoy de acuerdo, ya que ajax es una tecnología bastante más vieja que XMLHttpRequest y es posible hacer ajax con iframes, imágenes, estilos css y hasta con inclusiones DOM).
Pero bueno, aquí dejo un ejemplo de cómo acceder a un documento xml sin XMLHttpRequest (el xml, pese a estar en el mismo código, hay que pensarlo -y de hecho es así y puede comprobarse mirando el código fuente resultante- como un archivo aparte):
Código PHP:
<?php 
if(isset($_GET['xml'])){
header("Content-type: text/xml");
echo 
'<';
echo 
'?xml version="1.0" encoding="iso-8859-1"?>
<datos>
    <dato tipo="info">esto pertenece a un xml externo</dato>
</datos>
'
;
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function importXML()
{
    if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc = document.implementation.createDocument("", "", null);
        xmlDoc.onload = function(){alert('nodo del tipo: '+xmlDoc.documentElement.getElementsByTagName('dato').item(0).getAttribute('tipo')+', contenido:'+xmlDoc.documentElement.getElementsByTagName('dato').item(0).firstChild.data)};
    }
    else if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.onreadystatechange = function () {
            if (xmlDoc.readyState == 4) alert('nodo del tipo: '+xmlDoc.documentElement.getElementsByTagName('dato').item(0).getAttribute('tipo')+', contenido:'+xmlDoc.documentElement.getElementsByTagName('dato').item(0).firstChild.data)
        };
     }
    else
    {
        alert('Your browser can\'t handle this script');
        return;
    }
xmlDoc.load('?xml')
}    
</script>
</head>

<body>
<a href="javascript:importXML()">traer</a>
</body>
</html>
Adicionalmente, se muestra como acceder al valor de un atributo utilizando getAttribute.

Última edición por Panino5001; 09-feb-2008 a las 12:47.
Panino5001 está desconectado   Responder Citando
Antiguo 10-feb-2008, 07:52   #9 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

Carambas no pense que se armara un lio sobre que es y que no es ajax , en fin. Lo unico que deseo es poder acceder al atributo de un elemento XML, independiendetemente de si ha sido generado por una respuesta AJAX, o simplemente parseado como string o cargado con el XMLDOM, pues he probado y solo bota [null], jeje
Código:
    function processXML(objDom){
     var objXmlDom=objDom;
     alert(objXmlDom.getElementsByTagName("personas")[0].getAttribute("code"));

    }
Esta es la funcion que recibe como parametro el objetoXML, y pues nada, seguire probando y gracias por sus respuestas...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 10-feb-2008, 08:30   #10 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
Re: Acceder a atributos de un XML con JavaScript

Mirá bien las respuestas: no estás usando documentElement en ningún lado ;)
Panino5001 está desconectado   Responder Citando
Antiguo 10-feb-2008, 10:15   #11 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Triste Re: Acceder a atributos de un XML con JavaScript

Hola, si efectivamente, no use el documentElement, pero probando igual no funciona:
Código:
alert(objXmlDom.documentElement.getElementsByTagName('personas').item(0))
da como resultado null, y si intento colocar [getAttribute...], pues simplemente error,pero si oviamos el documentElement, devuelve un elemento del xml, asi que parce que hay algo que falta, jejeje, alguien que sepa como resolver este dilemita...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 10-feb-2008, 10:28   #12 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

Lo consegui, por si a alguien le interesa...
Código:
objXmlDom.getElementsByTagName('personas')[0].childNodes[0].attributes['id'].nodeValue
Algo extraño realmente el codigo, pero funciona, jeje haber si alguien lo acorta y me pasa el datito...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 10-feb-2008, 11:37   #13 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
Re: Acceder a atributos de un XML con JavaScript

Código PHP:
<?php 
if(isset($_GET['xml'])){
header("Content-type: text/xml");
echo 
'<?xml version="1.0" encoding="utf-8"?>
<personas>
    <persona code="001">
      <nombre>Jessica</nombre>
      <apellido>Monge</apellido>
      <edad>22</edad>
      <sexo>F</sexo>
  </persona>
</personas>
'
;
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function importXML()
{
    if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc = document.implementation.createDocument("", "", null);
        xmlDoc.onload = function(){alert('valor del atributo: '+xmlDoc.documentElement.getElementsByTagName('persona').item(0).getAttribute('code'))};
    }
    else if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.onreadystatechange = function () {
            if (xmlDoc.readyState == 4) alert('valor del atributo: '+xmlDoc.documentElement.getElementsByTagName('persona').item(0).getAttribute('code'))
        };
     }
    else
    {
        alert('Your browser can\'t handle this script');
        return;
    }
xmlDoc.load('?xml')
}    
</script>
</head>

<body>
<a href="javascript:importXML()">traer</a>
</body>
</html>
Panino5001 está desconectado   Responder Citando
Antiguo 10-feb-2008, 19:58   #14 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

Caramba no es por desanimarte [Panino5001], pero el code que pones no funciona en Firefox, como ya se sabe, y en Internet Explorer, pues devuelve un Objeto, pero no el dato del atributo. De todas maneras como mencione ya lo resolvi, pero desafortunadamente solo funciona en Firefox, jejej que caramba...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 10-feb-2008, 20:43   #15 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
Re: Acceder a atributos de un XML con JavaScript

No me desanimo. Funciona en ambos navegadores sin problemas (lo probé antes de postearlo). Sólo que si lo querés probar sin modificarlo, tenés que guardarlo como archivo php y hacerlo correr en un servidor web que tenga soporte para php. Si no tenés soporte php, tenés que eliminar toda la codificación php, colocar el xml en un archivo independiente y colocar la ruta de ese xml en el llamado al método load.
No lo mencioné porque lo di por supuesto.
También podés probarlo aquí.

Última edición por Panino5001; 10-feb-2008 a las 22:16.
Panino5001 está desconectado   Responder Citando
Antiguo 10-feb-2008, 22:25   #16 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

JEJE, yo hechandole la mole, pues en Firefox 2.x funciona, pero en IE 6.0 no... en 7.0 no lo he probado, y ejecute el enlace que colocaste...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 10-feb-2008, 23:19   #17 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
Re: Acceder a atributos de un XML con JavaScript

Es que en el archivo había agregado una línea diferente del código que posteé. Ya la quité. Probalo ahora y vas a ver que funciona. Yo lo probé en Firefox, IE 5, 6 y 7 y en Ópera.
Panino5001 está desconectado   Responder Citando
Antiguo 12-feb-2008, 07:22   #18 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 542
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría Re: Acceder a atributos de un XML con JavaScript

Hay caramba ahora si funciona, se agradece el ejemplo, lo implementera Gracias. Tema cerrado...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Bellenger está desconectado   Responder Citando
Antiguo 12-feb-2008, 11:12   #19 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.749
Enviar un mensaje por MSN a MaBoRaK
Re: Acceder a atributos de un XML con JavaScript

loading...........

Con XmlhttpRequest también debería haber funcionado, creo que el problema estaba en que no declaraba las cabeceras como documento XML.

connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:18.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10