Foros del Web » Programando para Internet » Jquery »

xml-parser jquery contendio de un nodo

Estas en el tema de xml-parser jquery contendio de un nodo en el foro de Jquery en Foros del Web. Muy buenas gente del foro, tengo una duda al quere acceder al contenido de un tag en el xml. Me explico con el siguiente ejemplo: ...
  #1 (permalink)  
Antiguo 12/05/2012, 19:56
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
xml-parser jquery contendio de un nodo

Muy buenas gente del foro, tengo una duda al quere acceder al contenido de un tag en el xml.
Me explico con el siguiente ejemplo:
tengo el siguiente archivo llamado mi.xml cuyo contendio es:

Código XML:
Ver original
  1. <capitulo titulo="Servidores de Correo">
  2. <seccion titulo="Introducción del capítulo">
  3. <tema titulo="Introducción">
  4. <pagina>
  5. <contenido-texto><p>Los <b>servidores</b> de correo etc etc etc para mayor info clic <a href="algunapagina.html">aqui</a></p></contenido-texto>
  6. <contenido-media><object width="400" height="400" data="contenidomedia.swf"></object>hghjghjg</contenido-media>
  7. </pagina>
  8. </tema>
  9. </seccion>
  10. </capitulo>

Con el jquery leo el archivo xml con el siguiente codigo:
Código Javascript:
Ver original
  1. $.ajax({
  2.         type: 'GET',
  3.         url: 'mi.xml',
  4.         cache: false,
  5.         dataType: ($.browser.msie) ? 'text' : 'xml', // Reconocemos el browser.
  6.         success: function(data){
  7.           var xml;
  8.           if(typeof data == 'string'){
  9.         xml = new
  10.         ActiveXObject('Microsoft.XMLDOM');
  11.         xml.async = false;
  12.         xml.loadXML(data);
  13.           } else {
  14.         xml = data;
  15.           }
  16.      
  17.           $(xml).find('capitulo').each(function(){
  18.            var titulo = $(this).attr('titulo'); //accedo al atributo de la etiqueta capitulo
  19.            $(this).find('seccion').each(function(){
  20.           var titulo_seccion = $(this).attr('titulo'); //accedo al atributo de la etiqueta seccion
  21.           $(this).find('tema').each(function(){
  22.             var titulo_tema = $(this).attr('titulo'); //accedo al atributo de la etiqueta tema
  23.             $(this).find('pagina').each(function(){
  24.             $(this).find('contenido-texto').each(function(){
  25.                 var contenido_texto = $(this).text(); //accedo al contenido de la etiquera contenido_texto
  26.                 alert(contenido_texto); //muestro lo que tiene la etiqueta contenido_texto
  27.                 });
  28.             $(this).find('contenido-media').each(function(){
  29.                 var contenido_media = $(this).text(); //lo mismo que arriba
  30.                 alert(contenido_media); //lo mismo que arriba
  31.                 });
  32.             });
  33.             });
  34.         });
  35.           });

Listo mi duda es la siguiente:

Al acceder a la etiqueta de contenido_texto con el var contenido_texto = $(this).text(); me muestra solo lo siguiente: Los servidores de correo etc etc etc para mayor info clic aqui y no como deberia segun yo mostrar que seria: Los servidores de correo etc etc etc para mayor info clic [URL="#"]aqui[/URL]

Como se ve solo me esta devolviendo el texto que se encuentra en la etiqueta contenido_texto y no todo lo que contiene con las etiquetas <p></p> <b></b> <a href></a>

Pasa lo mismo con contenido_media que en ese caso deberia de mostrarme el flash contendidomedia.sfw pero no me muestra nada

Mi pregunta es hay alguna propiedad o forma de poder acceder a todo el contendio y no solo al texto de una etiqueta con jquery o javascript .

Espero haber expresado bien y dar a entender la idea del problema que tengo.

Salu2.
  #2 (permalink)  
Antiguo 12/05/2012, 23:22
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: xml-parser jquery contendio de un nodo

me contesto a mi mismo ya encontre la solucion en un [URL="http://www.forosdelweb.com/f69/escapar-caracteres-ilegales-584135/"]tema[/URL] de otro usuario de forosdelweb.
La idea es escapar los caracteres "especiales" dentro de un <![CDATA[MI_VALOR]]>, es decir en el xml deberia estar de la siguiente manera:

Código Javascript:
Ver original
  1. <capitulo titulo="Servidores de Correo">
  2. <seccion titulo="Introducción del capítulo">
  3. <tema titulo="Introducción">
  4. <pagina>
  5. <contenido-texto><![CDATA[<p>Los <b>servidores</b> de correo etc etc etc para mayor info clic <a href="algunapagina.html">aqui</a></p>]]></contenido-texto>
  6. <contenido-media><![CDATA[<object width="400" height="400" data="contenidomedia.swf"></object>]]></contenido-media>
  7. </pagina>
  8. </tema>
  9. </seccion>
  10. </capitulo>

Listo y con eso funciona

Salu2

Etiquetas: jquery-ajax, 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 04:44.