ActionScript 内の XML の例:インターネットからの RSS データのロードFlash Player 9 以降、Adobe AIR 1.0 以降 RSSViewer サンプルアプリケーションは、次のような、ActionScript で XML を操作する様々な機能を示します。
RSS 形式は、XML でニュースを受け取るために広く使用されています。 単純な RSS データファイルの例を示します。 <?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Alaska - Weather</title>
<link>http://www.nws.noaa.gov/alerts/ak.html</link>
<description>Alaska - Watches, Warnings and Advisories</description>
<item>
<title>
Short Term Forecast - Taiya Inlet, Klondike Highway (Alaska)
</title>
<link>
http://www.nws.noaa.gov/alerts/ak.html#A18.AJKNK.1900
</link>
<description>
Short Term Forecast Issued At: 2005-04-11T19:00:00
Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office
Homepage: http://pajk.arh.noaa.gov
</description>
</item>
<item>
<title>
Short Term Forecast - Haines Borough (Alaska)
</title>
<link>
http://www.nws.noaa.gov/alerts/ak.html#AKZ019.AJKNOWAJK.190000
</link>
<description>
Short Term Forecast Issued At: 2005-04-11T19:00:00
Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office
Homepage: http://pajk.arh.noaa.gov
</description>
</item>
</channel>
</rss>
SimpleRSS アプリケーションは、インターネットから RSS データを読み取り、ヘッドライン(タイトル)、リンク、および説明のデータを解析し、そのデータを返します。 SimpleRSSUI クラスは UI を提供し、SimpleRSS クラスを呼び出します。SimpleRSS クラスはすべての XML 処理を行います。 このサンプルのアプリケーションのファイルを入手するには、www.adobe.com/go/learn_programmingAS3samples_flash_jp を参照してください。 RSSViewer アプリケーションのファイルは、Samples/RSSViewer フォルダーにあります。 このアプリケーションは次のファイルで構成されています。
XML データの読み取りと解析RSSParser クラスには、rssXML 変数に保存されている入力 RSS データを HTML 形式の出力を含むストリングである rssOutput に変換する xmlLoaded() メソッドがあります。 ソース RSS データにデフォルトの名前空間が含まれている場合にデフォルトの XML 名前空間を設定するコードが、メソッドの先頭近くにあります。 if (rssXML.namespace("") != undefined)
{
default xml namespace = rssXML.namespace("");
}
次の行は、ソース XML データの内容でループし、item という子孫のプロパティを確認します。 for each (var item:XML in rssXML..item)
{
var itemTitle:String = item.title.toString();
var itemDescription:String = item.description.toString();
var itemLink:String = item.link.toString();
outXML += buildItemHTML(itemTitle,
itemDescription,
itemLink);
}
最初の 3 行は、XML データの item プロパティの title、description、および link プロパティを表すストリング変数を単純に設定しています。次の行は、3 つの新しいストリング変数をパラメーターとして使用して buildItemHTML() メソッドを呼び出し、XMLList オブジェクトの形式で HTML データを取得しています。 XMLList データの構成HTML データ(XMLList オブジェクト)の形式は、次のとおりです。 <b>itemTitle</b>
<p>
itemDescription
<br />
<a href="link">
<font color="#008000">More...</font>
</a>
</p>
メソッドの最初の行で、デフォルトの xml 名前空間を消去します。 default xml namespace = new Namespace(); default xml namespace ディレクティブのスコープは、関数ブロックレベルです。すなわち、この宣言のスコープは buildItemHTML() メソッドです。 次の行で、関数に渡されたストリング引数に基づいて、XMLList を構成します。 var body:XMLList = new XMLList();
body += new XML("<b>" + itemTitle + "</b>");
var p:XML = new XML("<p>" + itemDescription + "</p>");
var link:XML = <a></a>;
link.@href = itemLink; // <link href="itemLinkString"></link>
link.font.@color = "#008000";
// <font color="#008000"></font></a>
// 0x008000 = green
link.font = "More...";
p.appendChild(<br/>);
p.appendChild(link);
body += p;
この XMLList オブジェクトは、ActionScript HTML テキストフィールドに適したストリングデータを表します。 xmlLoaded() メソッドは、buildItemHTML() メソッドの戻り値を使用して、ストリングに変換します。 XML.prettyPrinting = false; rssOutput = outXML.toXMLString(); RSS フィードのタイトル抽出とカスタムイベントの送信xmlLoaded() メソッドは、ソース RSS XML データの情報に基づいて、 rssTitle ストリング変数を設定します。 rssTitle = rssXML.channel.title.toString(); 最後に、xmlLoaded() メソッドが、データが解析され使用可能になったことをアプリケーションに通知するイベントを生成します。 dataWritten = new Event("dataWritten", true);
|
|