Foros del Web » Programando para Internet » Javascript »

Aporte Leer nodos XML profundamente

Estas en el tema de Aporte Leer nodos XML profundamente en el foro de Javascript en Foros del Web. Codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function escabar ( obj ) {     var div = obj. childNodes ;     var ...
  #1 (permalink)  
Antiguo 24/10/2012, 18:07
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Aporte Leer nodos XML profundamente

Codigo

Código Javascript:
Ver original
  1. function escabar(obj)
  2. {
  3.     var div = obj.childNodes;
  4.     var n = div.length;
  5.     var cont = "";
  6.     for(var i = 0; i < n; i++)
  7.     {
  8.         if(div[i].nodeType == 1)
  9.         {
  10.             cont += "<";
  11.             cont += div[i].nodeName.toLowerCase();
  12.             cont += " ";
  13.             attr = div[i].attributes.length;
  14.             for(var j = 0; j < attr; j++)
  15.             {
  16.                 cont += div[i].attributes[j].nodeName;
  17.                 cont += "='";
  18.                 cont += div[i].attributes[j].nodeValue;
  19.                 cont += "' ";
  20.             }
  21.            
  22.                 if(div[i].childNodes.length)
  23.                 {
  24.                 cont += ">";
  25.  
  26.                 var cont1 = escabar(div[i]);
  27.                 cont += cont1;
  28.                 cont += "</";
  29.                 cont += div[i].nodeName.toLowerCase();
  30.                 cont += ">";
  31.                 }
  32.                 else
  33.                 {
  34.                 cont += "/>";
  35.                 }
  36.         }
  37.         else if(div[i].nodeType == 3)
  38.         {
  39.             cont += div[i].data;
  40.            
  41.         }
  42.        
  43.     }
  44.     return cont;
  45.     //alert(getHtm(document.getElementById('idf')))
  46. }

El parametro que recibe es el nodo superior

por ejemplo

<nodo1>
texto<nodo2 parametro="valor">texto</nodo2>texto<nodo3 />
</nodo1>

entonces el parametro seria

docxml.getElementsByTagName("nodo1").item(0);

la funcion devuelve todo el contenido osea
nodos de texto, nodos elementos junto con sus parametros

Saludos
  #2 (permalink)  
Antiguo 24/10/2012, 20:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Aporte Leer nodos XML profundamente

buenas @hackjose.
te tengo una pequeña crítica. ¿podrías explicar el por qué de dicha implementación? me explico. reinventar la rueda no es que sea negativo, porque en el proceso también se aprende. pero a lo que voy es que ya existe una forma nativa para obtener el mismo resultado que produce tu código. en el caso de html podríamos usar innerHTML. para xml también tenemos una propiedad similar, textContent. (para ambos casos faltaría serializar el elemento actual.) al menos para mis gusto, prefiero usar métodos nativos frente a implementaciones, salvo algunas circunstancias. por ejemplo, si el navegador carece de implementación nativa o si se le agrega alguna funcionalidad adicional que no esta presente en la implementación nativa.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 24/10/2012, 23:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Aporte Leer nodos XML profundamente

Hola:

Los que recibimos datos Ajax por medio de responseXML, más o menos sabemos buscar los datos de un XML. Tal vez te pueda servir mi viejo Destripador Ajax.
Los bucles del tipo for-in creo que son más apropiados ya que los nodos xml al ser objetos (DOM) se recorren mejor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 25/10/2012, 09:00
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Aporte Leer nodos XML profundamente

zerokilled
La use y bueno solo me devuelve texto y mis nodos xml tienen html, por eso es que no me sirvio, utilice innerHTML pero no funciono en nodos xml

caricatos
Checare tu pagina y te comento

Saludos

Etiquetas: funcion, nodos, xml, aportes
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 17:58.