2014-10-30 134 views
0

我使用GoogleFeed API来显示一个RSS feed为HTML:如何让Google Feed API显示CDATA?

var feedcontainer=document.getElementById("feeddiv") 
var feedurl="MY FEED URL" 
var feedlimit=20 
var rssoutput="" 

function rssfeedsetup(){ 
var feedpointer=new google.feeds.Feed(feedurl) //Google Feed API method 
feedpointer.setResultFormat(google.feeds.Feed.MIXED_FORMAT) 
feedpointer.setNumEntries(feedlimit) //Google Feed API method 
feedpointer.load(displayfeed) //Google Feed API method 
} 

function displayfeed(result){ 
if (!result.error){ 
var thefeeds=result.feed.entries 
for (var i=0; i<thefeeds.length; i++) 
rssoutput+="<a href='" + thefeeds[i].link + "' style='text-decoration:none'>" + "<h1 class='pub'>" + thefeeds[i].title + "</h1>" + "</a>" + new Date(thefeeds[i].publishedDate) + thefeeds[i].content + "<p class='text-small-hilite'><a href='" +thefeeds[i].link + "'>" + "Read full post" + "</a></p>" 
rssoutput+="" 
feedcontainer.innerHTML=rssoutput 
} 
else 
alert("Error fetching feeds!") 
} 

window.onload=function(){ 
rssfeedsetup() 
} 

我想也显示为HTML我标记内CDATA元素。我试过.xmlNode.getElementsByTagName但没有奏效。

<item> 
<title> 
MY TITLE 
</title> 
<link>MY URL</link> 
<comments>MY URL</comments> 
<pubDate>Fri, 17 Oct 2014 19:06:53 +0000</pubDate> 
<dc:creator> 
<![CDATA[ MY AUTHOR ]]> 
</dc:creator> 

是否可以将CDATA“我的作者”中的文本显示为HTML?

回答

0

该标签具有DC的命名空间,所以你可以使用getElementsByTagNameNS方法中的for循环是这样的:

var creator = thefeeds[i].xmlNode.getElementsByTagNameNS(
       'http://purl.org/dc/elements/1.1/', 'creator')[0].innerHTML; 

但如果你只是想DC的内容:创造者,它可能是一样的thefeeds[i].authorFeed API's JSON documentation可能会有所帮助。

提示:使用您的browser's developer tools并设置一个断点里面的for循环,然后就可以看到哪些对象包含:

enter image description here