FLASHへのRSS表示について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
dkdk
記事: 2
登録日時: 2007年8月02日(木) 10:33

FLASHへのRSS表示について

投稿記事 by dkdk » 2007年8月02日(木) 10:42

RSSを吐き出すところまではうまくいくのですが(RSSリーダーなどでも読み込めます)
吐き出したRSSをFLASHで表示させるとソースが表示されてしまいます。

<?xml version="1.0" encoding="UTF-8" ?>
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xml:lang="ja">
- <channel rdf:about="http://www.hoge.com/cms/">
<title>サイト名</title>
<link>http://www.hoge.com/cms/</link>
<description>サイトの説明</description>
- <items>
- <rdf:Seq>
<rdf:li rdf:resource="http://www.hoge.com/cms/akiji.php?eid=00007" />
</rdf:Seq>
</items>
</channel>
- <item rdf:about="http://www.hoge.com/cms/akiji.php?eid=00007">
<title>新商品を発表!</title>
<link>http://www.hoge.com/cms/akiji.php?eid=00007</link>
<description />
<dc:date>2007/07/31</dc:date>
<dc:subject />
</item>
</rdf:RDF>
FLASHには

2007/07/31 新商品を発表!

といったように、タイトルと日付のみを表示させたいのです。
これはどのようにしたら良いのでしょうか・・・?

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: FLASHへのRSS表示について

投稿記事 by webmaster » 2007年8月02日(木) 15:42

 以前、近いスクリプトを書いた事があったので、少し手直ししてみました。
 dc:dateには、W3CDTF形式で日時が入っている為、日付部分だけを取り出して
trace出力しています。
 適当に修正してお使い下さい。

※ActionScript2.0用となっています。3.0用ではもっと簡単にかけるかと思いますが、使ったことがない為分かりません・・・。

コード: 全て選択

import mx.xpath.XPathAPI;
var rss:XML = new XML();
rss.ignoreWhite = true;
rss.load("http://cms.al-design.jp/newsrss.php");
rss.onLoad = function(success:Boolean) {
  if (success) {
    var itemPath:String = "/rdf:RDF/item";
    var itemArray:Array = XPathAPI.selectNodeList(this.firstChild, itemPath);

	for ( var index = 0; index < itemArray.length; index ++ )
	{
		var sTitle = '';
		var sLink = '';
		var sDate = '';
		
		item = itemArray[ index ];
		for ( var node = item.firstChild; node != null; node = node.nextSibling )
		{
			switch ( node.nodeName )
			{
				case 'title' :
					sTitle = undefinedValue( node.firstChild.nodeValue );
					break;
				
				case 'link' :
					sLink = undefinedValue( node.firstChild.nodeValue );
					break;
					
				case 'dc:date' :
					sDate = undefinedValue( node.firstChild.nodeValue );
					break;
			}
		}
		
		trace( sDate.split( 'T')[0] );
		trace( sTitle );
		trace( sLink );
		trace( '' );
	}

  } else {
    trace("error : could'nt load the xml.");
  }
};

function undefinedValue( value, defaultValue )
{	
	var returnValue = '';
	
	if ( defaultValue != undefined )
	{
		returnValue = defaultValue;
	}
	
	if ( value != undefined )
	{ 
		returnValue = value;
	}
	
	return returnValue;
}

dkdk
記事: 2
登録日時: 2007年8月02日(木) 10:33

投稿記事 by dkdk » 2007年8月07日(火) 11:45

ありがとうございます!

FALSHの質問なのに丁寧に答えてくださり、とても助かりました。

返信