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」に明示的に設定することでした。すなわち、

サーバ側:

...
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 に答える