我有一个脚本,它生成一个带有ColdFusion及其CFFeed标记的xml文件。除了图像之外,它工作得很好。我知道你必须在CDATA中封装图像才能显示它。我不确定我的设置是否正确,因为图片没有显示在我的Google Reader / Feedly feed中。代码如下:
<cfquery datasource="data" name="queryT">
SELECT *
FROM qTable
WHERE ...
ORDER BY...
</cfquery>
<cfset RssStruct = StructNew() />
<cfset RssStruct.link = "https://www.url.com" />
<cfset RssStruct.title = "sitename" />
<cfset RssStruct.description = "url Blog" />
<cfset RssStruct.image.url = 'https://www.url.com/assets/img/ns.png' />
<cfset RssStruct.image.title = 'Site Name' />
<cfset RssStruct.image.link = 'https://www.url.com' />
<cfset RssStruct.pubDate = Now() />
<cfset RssStruct.version = "rss_2.0" />
<cfset RssStruct.item = ArrayNew(1) />
<cfset threadlist = "">
<cfset index = 1>
<cfloop query="queryT">
<cfif listcontains( threadlist , '#id#' ) eq 0>
<cfset threadlist = ListAppend(threadlist, '#id#')>
<!--- Here let's clean up and ensure that all values are XML Compliant --->
<cfset RssStruct.item[index] = StructNew() />
<cfset RssStruct.item[index].guid = structNew() />
<cfset RssStruct.item[index].guid.isPermaLink ="YES" />
<cfset RssStruct.item[index].guid.value = 'https://www.url.com/page.cfm?itemid=#queryT.id#' />
<cfset RssStruct.item[index].pubDate = createDate(year(Posted), month(Posted), day(Posted)) />
<cfset RssStruct.item[index].title = xmlFormat(#title#) />
<cfset RssStruct.item[index].Body = xmlFormat(#Body#) />
<cfset RssStruct.item[index].description = StructNew() />
<cfset RssStruct.item[index].description.value = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' />
<cfset RssStruct.item[index].link = 'https://www.url.com/page.cfm?item=#queryT.id#' /><br>
<cfset index = index + 1>
</cfif>
</cfloop>
<!--- Generate the feed and save it to a file and variable. --->
<cffeed action="create" name="#RssStruct#" overwrite="true" xmlVar="myXML" outputFile = "Feed.xml" />`发布于 2013-04-02 00:34:47
看起来您已经为item下的<description>元素创建了一个结构。您是否尝试过简单地将代码放入<description>中?
而不是这样:
<cfset RssStruct.item[index].description = StructNew() />
<cfset RssStruct.item[index].description.value = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' />试试这个:
<cfset RssStruct.item[index].description = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' />您是否尝试过改用项目的<enclosure>元素?
Definition and Usage
元素的作用是:允许将媒体文件包含在项目中。
属性
长度-必填。定义媒体文件的长度(字节)
类型-必填。定义媒体文件的类型
url -必填。定义媒体文件的URL
示例如下(您需要以字节为单位确定图像的大小):
<enclosure url="https://www.url.com/assets/Photos/photo/#id#.jpg" length="#ImageLength#" type="image/jpeg" />https://stackoverflow.com/questions/15734840
复制相似问题