2017-11-24 9 views
0

imgがCDATAにあるとき、AJAXはRSS/XMLからブログ画像を読み込みますか?imgがCDATAにあるときにAJAX RSS/XMLからブログ画像を読み込む方法

ブログのRSSフィードからタイトル、URL、公開日などを読み込むことはできますが、画像のターゲットを設定する方法はわかりません。私はthisスクリプトを使用して開始し、これを取得するためにそれを修正:

$.ajax({ 
type: "GET", 
url: "http://www.example.com/blog/feed", 
dataType: "xml", 

success: function(xml) { 

    var contain = $("div#blogSection"); 
    var limit = 1; 

    $(xml).find('item').each(function(index){ 
    if(index < limit){ 

     var title = $(this).find('title').text(); 
     var url = $(this).find('link').text(); 
     var pubDate = $(this).find('pubDate').text(); 
     var img = $(this).find('content:encoded > p > img').attr('src').text(); 
     var desc = $(this).find('description > p:first').text(); 

     $('<div class="blogFeed"></div>').html('<div class="feedThumbnail"><img src="'+img+'" class="resizable" title="blog image" alt="blog image"></div><div class="feedExcerpt"><h3 class="title"><a href="'+url+'">'+title+'</a></h3><p>'+desc+'</p><p><a class="allLink" href="'+url+'" title="read more" alt="read more" target="_blank">read more</a></p></div>').appendTo(contain); 
     return; 
     } 
     });//end each 
    } 
}); 

私はそれが文字データとして、その中にすべてのものを解釈することを読んだことがあるような問題は、XML内CDATAであると思います。

<item> 
    <title>Title</title> 
    <link>Link</link> 
    <comments>Comments</comments> 
    <pubDate>Date</pubDate> 
    <description><![CDATA[Description]]></description> 
    <content:encoded><![CDATA[<p><img src="http://www.example.com/img.jpg"...]]></content:encoded> 
</item> 

私はそれが目標ではないさせるCDATAであることを正しいだ場合は、私がイメージして最初の段落をターゲットに私のAjaxコードでどのような操作を行うことができます。XMLは次のようになりますか?私が間違っている場合、私は追加/削除する必要がありますか?

ありがとうございます!すべてのブラウザでの作業

答えて

0

私はこの置き換え: 'コンテンツ:エンコードされた' 私は特殊文字をエスケープ

var img = $(this).find('content\\:encoded, encoded').text(); 
img = $.parseHTML(img); 
img = img[0].firstChild.src; 

:と「追加、エンコードされた。これにより

var img = $(this).find('content:encoded > p > img').attr('src').text(); 

を" $ .parseHTML、console.log(img)を追加した後。 srcの場所を明らかにしました。戻る.text()はCDATAを削除したので、CDATAが無関係であると思われます。ブログ画像のテスト日。誰かが時間を節約するのに役立ちたいと思っています。

関連する問題