2010-03-31 3 views
1

Apparemment, cela a déjà été demandé, mais les réponses ne semblent pas fonctionner pour moi. Je génère des informations à partir d'un fichier XML local, mais les éléments de description ne sont pas sortis car ils sont inclus dans CDATA - si je supprime la partie CDATA, les choses fonctionnent correctement.Extraction de CDATA à l'aide de jQuery

Voici mon code:

$(document).ready(
    function() { 
    $.get('test.xml', 
     function($info) { 
     objInfo = $($info); 

     objInfo.find('item').slice(0,5).each(
      function() { 
      var Guid = $(this).find('guid').text(); 
      var Title = $(this).find('title').text(); 
      var Description = $(this).find('description').text(); 
      $('#Content').append(
       "<p><a href='" + Guid + "'>" + 
       Title + "</a>&nbsp;" + 
       Description + 
       "</p>" 
      ) 
      } 
     ); 

     }, 
     'xml' 
    ); 
    } 
) 

Toute idée comment je peux extraire avec succès l'information Description qui est enveloppé dans CDATA?

Merci -

george

+2

pouvez-vous fournir la partie du code xml !? –

Répondre

0

Je viens de passer les dernières heures sur quelque chose de très similaire, et ce qui a fonctionné pour moi a été la définition explicite du type de contenu « text/xml » et « xml » sur l'envoi/Réception des côtés. I.e.,

côté serveur:

... 
response.setContentType("text/xml"); 
... 

côté client/jQuery:

... 
$.ajax({ 
    type: 'POST', 
    url: 'myAjaxHandler', 
    processData: false, 
    data: message, 
    contentType: 'text/xml', 
    dataType: 'xml', 
    success: function(xml, textStatus) { 
    var myVar= $(xml).find('interestingNode').text(); 
    $('#someId').append(myVar); 
    }, 
    error: function(xhr, textStatus, errorThrown) { 
    ... 
    } 
}); 

... 

Je ne sais pas si les deux sont nécessaires. Dans la documentation, si vous ne spécifiez aucun type de contenu, jQuery essayera de "deviner" ce que vous envoyez, et dans mon cas, j'ai incorporé du code HTML dans CDATA.