SMIL を使用するように XML の名前空間を設定し、次の方法で要素の src 属性を取得できます。
my.node.@src
「これはいくつかのURLです」を取得します
ただし、「system-bitrate」という別の属性があります。マイナス記号のせいで、私はできませ@system-bitrate
んmy.node.attribute('system-bitrate')
。
奇妙なことに、うまくいきませんmy.node.attribute('src')
。これは名前空間が原因だと思いますか?では、を使用して属性を取得するにはどうすればよいny.node.attribute
ですか?
機能するのは だけですmy.node.attributes()[1]
。それが「正しい方法」ではないことはわかっているので、誰かが私を啓発できることを願っています!
参考までに、私はSMILファイルを扱っています
** 編集 **
私が使用している XML に必要な名前空間は次のとおりです。
default xml namespace = new Namespace('http://www.w3.org/2001/SMIL20/Language');
そして、私が扱っている XML の例:
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="title" content="Live"/>
</head>
<body>
<switch>
<video src="myStreamName" system-bitrate="200000"/>
</switch>
</body>
</smil>
** DennisJaaman のコード サンプル **
default xml namespace = new Namespace('http://www.w3.org/2001/SMIL20/Language');
var xml:XML = XML(event.target.data);
for each(var o:XML in xml.body['switch'].video) {
if(!hs) hs = o;
else {
trace(o.attributes()[1]); // works
trace(o.@url); // doesn't work either (makes me wonder about NS issues
trace(o['@system-bitrate']); // doesn't work
trace(o.attribute('@system-bitrate') // doesn't work
// etc etc, I just left a few in here
}
}