0

そうです、私はいくつかの異なる RSS フィードを持つサイトで作業しています。私の問題は、フィードの 1 つが正常に機能することですが、2 つ目のフィード (ほぼ同じコードに基づく) が失敗し、その理由がわかりません。

動作するコードは次のとおりです。

<!--- Get the feed data as a query from the orders table. ---> 
<cfquery name="getNews" datasource="#DSN#">  
    SELECT * FROM NEWS2
    WHERE STATUS = 1 
    ORDER BY rdate DESC
</cfquery>  


<cfset myStruct = StructNew() />
<cfset mystruct.link = "http://noobzilla.net" />
<cfset myStruct.title = "Noobzilla News" />
<cfset mystruct.description = "Programming Related Site Reviews" />
<cfset mystruct.pubDate = Now() />
<cfset mystruct.version = "rss_2.0" />
<cfset myStruct.item = ArrayNew(1) />

<cfloop query="getNews">
    <cfset myStruct.item[currentRow] = StructNew() />
    <cfset myStruct.item[currentRow].guid = structNew() />
    <cfset myStruct.item[currentRow].guid.isPermaLink="YES" />
    <cfset myStruct.item[currentRow].guid.value = 'http://noobzilla.net/news-detail.cfm?id=#id#' />    
    <cfset myStruct.item[currentRow].pubDate = "#DateFormat(getNews.rdate, "mm/dd/yyyy")#" />
    <!---<cfset myStruct.item[currentRow].title = xmlFormat(title) />--->
    <cfset myStruct.item[currentRow].title = #title# />
    <cfset myStruct.item[currentRow].description = StructNew() />
    <!---<cfset myStruct.item[currentRow].description.value = xmlFormat(#info#) />--->
    <cfset myStruct.item[currentRow].description.value = '#Left(info, 250)#...' />
    <cfset myStruct.item[currentRow].link = 'http://noobzilla.net/news-detail.cfm?id=#id#' />
</cfloop>

<!--- Generate the feed and save it to a variable. --->
<cffeed action="create" name="#myStruct#" overwrite="true" xmlVar="myXML" />

上記のコードはうまく機能します。これが私の2番目のファイルのコードです(別のテーブルを使用しているだけで、実質的に同じであることがわかります):

<!--- Get the feed data as a query from the orders table. ---> 
<cfquery name="getNews" datasource="#DSN#">  
    SELECT * FROM NEWS
    WHERE STATUS = 1 
    ORDER BY rdate DESC
</cfquery> 

<cfset myStruct = StructNew() />
<cfset mystruct.link = "http://noobzilla.net" />
    <cfset myStruct.title = "IDE Reviews" />
<cfset mystruct.description = "IDE and SDK Reviews" />
<cfset mystruct.pubDate = Now() />
<cfset mystruct.version = "rss_2.0" />
<cfset myStruct.item = ArrayNew(1) />

<cfloop query="getNews">
    <cfset myStruct.item[currentRow] = StructNew() />
    <cfset myStruct.item[currentRow].guid = structNew() />
    <cfset myStruct.item[currentRow].guid.isPermaLink="YES" />
    <cfset myStruct.item[currentRow].guid.value = 'http://noobzilla.net/news-detail2.cfm?id=#id#' />    
    <cfset myStruct.item[currentRow].pubDate = "#DateFormat(getNews.rdate, "mm/dd/yyyy")#" />
    <cfset myStruct.item[currentRow].title = #title# />
    <cfset myStruct.item[currentRow].description = StructNew() />
    <cfset myStruct.item[currentRow].description.value = '#Left(info, 250)#...' />
    <cfset myStruct.item[currentRow].link = 'http://noobzilla.net/news-detail2.cfm?id=#id#' />
</cfloop>

<!--- Generate the feed and save it to a variable. --->
<cffeed action="create" name="#myStruct#" overwrite="true" xmlVar="myXML" />

この 2 番目のコード セットは、次のエラーを生成します。

pubDate で指定された日付の解析中にエラーが発生しました。pubDate を日付に変換できません。

4

3 に答える 3

2

getNews.rdate の値を調べて、ColdFusion で受け入れられる標準の日付または日付/時刻形式であることを確認します。

于 2010-07-23T02:12:00.410 に答える
1

これは、Pragnesh によって提案されたソリューションのコード サンプルです。

<cfif isDate(getNews.rdate)>
    <cfset myStruct.item[currentRow].pubDate = DateFormat(getNews.rdate, "mm/dd/yyyy") />
<cfelse>
    <cfset myStruct.item[currentRow].pubDate = DateFormat(Now(), "mm/dd/yyyy") />
</cfig>
于 2010-07-23T08:54:26.560 に答える
0

Ben、Sergii、Pragnesh - 返信ありがとうございます。私は時々少し密になることができます。エラーがこの最初の行に起因しているに違いないという事実に私は巻き込まれました:

あなたの提案に従ってデータを再確認したところ、rdate のデータがないレコードがありました。

乾杯!

于 2010-07-23T16:00:11.727 に答える