2010-03-31 4 views
1

Похоже, что это было задано раньше, но ответы, похоже, не работают для меня. Я выводил информацию из локального XML-файла, но элементы описания не выводятся, потому что он заключен в CDATA - если я удалю часть CDATA, тогда все будет работать нормально.Извлечение CDATA Использование jQuery

Вот мой код:

$(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 !? –

ответ

0

Я просто провел последние несколько часов на то очень похожи, и то, что работало для меня было явно устанавливая тип контента в «текст/XML» и «XML» на отправку/принимающей стороны. То есть,

стороне сервера:

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

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) { 
    ... 
    } 
}); 

... 

Не уверен, что если оба необходимы.

Из документации, если вы не укажете тип содержимого в любом месте, jQuery попытается «угадать» то, что вы отправляете, и в моем случае у меня был встроенный в CDATA HTML.

Смежные вопросы