2010-03-31 56 views
1

它看起来像以前一样,但答案似乎不适用于我。我从本地XML文件输出信息,但描述元素没有被输出,因为它被包含在CDATA中 - 如果我删除了CDATA部分,那么事情就可以正常工作。使用jQuery提取CDATA

这里是我的代码:

$(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' 
    ); 
    } 
) 

任何想法,我怎样才能成功地提取出被包裹在CDATA说明信息?

谢谢 -

乔治

+2

你能否提供xml代码的部分!? – 2010-03-31 18:50:37

回答

0

我只是花了一些非常相似的最后几个小时,什么工作对我来说是明确设置内容类型为“text/XML”和“XML”上发送/接收方。即,

服务器端:

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

客户端/ 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) { 
    ... 
    } 
}); 

... 

不知道两者都需要。

从文档中,如果你没有在任何地方指定内容类型,jQuery将尝试“猜测”你发送的内容,在我的情况下,我已经嵌入在CDATA中的HTML。