忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
[25] [24] [22] [21] [20] [19] [18] [17] [15] [16] [14]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

苦い濃いより、甘い濃い。
毎日暑くてふにゃふにゃです。

さて、

<cfset blogList = "satou,suzuki,tanaka,yamaguchi,yamada">

<cfset rssDoc = structnew()>

<!--- ■RSS get --->
<cfloop list="#blogList#" index="blogname">
<cfhttp url="http://blog.hogehoge.co.jp/#blogname#/index.xml" result="#blogname#" />
</cfloop>

<!--- ■xml解析 --->
<cfloop list="#blogList#" index="blogname">
<cfset rssDoc[#blogname#] = XmlParse(Evaluate("#blogname#.filecontent"))>
</cfloop>

<!--- ■内部mt_entry更新 --->
<cfquery name="upd" datasource="mtdb">
UPDATE hogehoge SET hoge WHERE entry_id = '123'
</cfquery>

<!--- ■表示部分 --->
<cfloop list="#blogList#" index="blogername">
<cfoutput>
BlogerName:#blogername#<br />
lastBuildDate:#CreateODBCDateTime(rssDoc[blogername].rss.channel.lastBuildDate.XmlText)#<br />
TITLE:#rssDoc[blogername].rss.channel.item[1].title.XmlText#<br />
description:#REReplace(rssDoc[blogername].rss.channel.item[1].description.XmlText,"<[^>]*>","","All")#
<hr />
</cfoutput>
</cfloop>

コアな部分はこんな感じですね。
ポイントとしては、数人分のxmlオブジェクトをループ処理できるように、rssDoc という構造体にまとめて入れたこと。
で、構造体を扱うときにハマリがちな部分は、
rssDoc.satou.hoge.fuga.ColdFusion.great という風に、直書きなら扱えるけれど、
rssDoc.#blogername#.hoge.fuga.ColdFusion.great という風に変数をドットシンタックスには入れられない点。なんで?と言われてもよくわかりまへん。変数名なのか構造体のキー名なのかわからないからかな?ColdFusionの仕様
その場合は、[連想配列]として扱えばOKです。
rssDoc[blogername].hoge.fuga.ColdFusion.great

あと、わかってるようで実はイマイチわかっていないのが Evaluate 関数。(→LiveDocs
マニュアルには、

説明

1 つ以上の文字列式をダイナミックに左から右へ評価します(左部分の評価結果が右部分に対して意味を持つことがあります)。右端にある式の評価結果が返されます。

とありますが、σ(・・*)ワタシ的には意味不明。
ただ、いろいろやっているうちに、この関数は、「変数で変数名を作る」ときに使える と理解しています。
今回の場合、satou.filecontent や suzuki.filecontent という変数をXmlParseする必要があったのですが、XmlParse(#blogername#.filecontent) とするとエラーになります。
XmlParse(Evaluate("#blogername#.filecontent")) とすると、XmlParse(satou.filecontent) としたときと同じ処理になってくれます。

構造体や配列をループ処理するときによく使いますね。Evaluateは。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Test, just a test
post Awesome. Vraiment apprécié la lecture de votre blog.
escorte Paris URL 2012/05/20(Sun)00:32:42 編集
この記事へのトラックバック
この記事にトラックバックする:
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
なかのひと
忍者ブログ [PR]