XMLを使ってみる(その2)

XMLリテラルの中で式を評価

nitoyonさんのblogでjavascriptによるE4Xの扱いについてのエントリがアップされました。

これを読んで次のコードが気になった。

{} で囲まれた部分は Expression(式)として評価される。文はダメ。

function xml1(str){
  return <test>{str}</test>;
}

xml1("Hello").toXMLString();
// <test>Hello</test>

なるほど、XMLリテラルとストリングリテラルの合成みたいなことが出来るのか。
というわけで、ActionScriptでも同様なことが出来るかどうか、以下のようなコードを試してみました。

// Example 3
public function makeAHTML( aStr:String, aURL:String ) :XML
{
  return <a href={aURL}>{aStr}</a>;
}

public function testF3() :void
{
  var aAHTML:XML = makeAHTML( "GOOGLE", "http://www.google.com/" );
  trace( aAHTML.toXMLString() );
  // => [trace] <a href="http://www.google.com/">GOOGLE</a>
}

出来ました!
しかもこちらの方が、ストリングの合成よりも生のXMLを扱っている感じがして、なんかかっこいい。

(つづく)