1

看起来以前有人问过这个问题,但答案似乎对我不起作用。我正在从本地 XML 文件输出信息,但没有输出描述元素,因为它包含在 CDATA 中 - 如果我删除 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 中的描述信息吗?

谢谢 -

乔治

4

1 回答 1

0

我刚刚花了最后几个小时做一些非常相似的事情,对我有用的是在发送/接收端将内容类型明确设置为“text/xml”和“xml”。IE,

服务器端:

...
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。

于 2010-06-16T20:21:41.867 回答