Foros del Web » Programando para Internet » Javascript »

Obtener valores XML

Estas en el tema de Obtener valores XML en el foro de Javascript en Foros del Web. Hola a todos estoy trabajando con ajax y deseo obtener los valores de un xml dependiendo de su nombre, el xml sería este: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 24/09/2015, 18:05
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Obtener valores XML

Hola a todos estoy trabajando con ajax y deseo obtener los valores de un xml dependiendo de su nombre, el xml sería este:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <categorias>
  3.     <categoria name="mujer">
  4.         <subcategoria>Toallas</subcategoria>
  5.         <subcategoria>Traje de bano</subcategoria>
  6.         <subcategoria>Lentes de sol</subcategoria>
  7.     </categoria>
  8.    
  9.     <categoria name="hombre">
  10.         <subcategoria>Poleras</subcategoria>
  11.         <subcategoria>Toallas</subcategoria>
  12.         <subcategoria>Tops</subcategoria>
  13.     </categoria>
  14.    
  15.     <categoria name="ninos">
  16.         <subcategoria>Trajes de Bano</subcategoria>
  17.         <subcategoria>Lentes</subcategoria>
  18.         <subcategoria>Accesorios</subcategoria>
  19.     </categoria>
  20. </categorias>

entonces quiero obtener los valores de las subcategorias de hombre por ejemplo.

como debo leer el xml para llegar a eso?

sabiendo que todo el xml esta en una variable llamada

xml

Esto es lo que tengo:

Código Javascript:
Ver original
  1. function createREQ() {
  2.             try {
  3.             req = new XMLHttpRequest(); /* p.e. Firefox */
  4.             }
  5.             catch(err1){
  6.                 try {
  7.                 req = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
  8.                 }
  9.                 catch (err2) {
  10.                     try {
  11.                     req = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
  12.                     }
  13.                     catch (err3) {
  14.                     req = false;
  15.                     }
  16.                 }
  17.             }
  18.     return req;
  19.     }


Código Javascript:
Ver original
  1. http = new createREQ();
  2.    
  3.     function requestPOST(){
  4.     http.open("POST", "includes/categorias.php", true);
  5.     http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  6.     http.onreadystatechange = changeCat2;
  7.     http.send("?site=1");
  8.     }

Código Javascript:
Ver original
  1. function changeCat2(){
  2.         if(http.readyState == 4){
  3.             if(http.status == 200){
  4.                
  5.             xml = http.responseXML;
  6.            
  7.         }
  8.     }

y categorias.php tiene esto:

Código PHP:
Ver original
  1. <?php
  2. header("Content-Type: text/xml");
  3. echo '<?xml version="1.0" encoding="UTF-8" ?>
  4. <categorias>
  5.     <categoria name="mujer">
  6.         <subcategoria>Toallas</subcategoria>
  7.         <subcategoria>Traje de bano</subcategoria>
  8.         <subcategoria>Lentes de sol</subcategoria>
  9.     </categoria>
  10.    
  11.     <categoria name="hombre">
  12.         <subcategoria>Poleras</subcategoria>
  13.         <subcategoria>Toallas</subcategoria>
  14.         <subcategoria>Tops</subcategoria>
  15.     </categoria>
  16.    
  17.     <categoria name="ninos">
  18.         <subcategoria>Trajes de Bano</subcategoria>
  19.         <subcategoria>Lentes</subcategoria>
  20.         <subcategoria>Accesorios</subcategoria>
  21.     </categoria>
  22. </categorias>';
  23. ?>

Última edición por alvaro_trewhela; 24/09/2015 a las 19:12
  #2 (permalink)  
Antiguo 25/09/2015, 06:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Obtener valores XML

sería algo así
Cita:
col = xmlDoc.getElementsByTagName('categoria');

for (var i = 0; i < col.length; i++) {
if (col[i].getAttribute('name') && col[i].getAttribute('name') == 'hombre') {

for (var j = 0, sub = col[i].getElementsByTagName('subcategoria'); j < sub.length; j++) {

console.log(sub[j].childNodes[0].nodeValue);
}
}
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: ajax, valor, xml
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.