使用AS3解析具有冒号的XML节点属性

时间:2012-03-28 16:08:41

标签: xml actionscript-3 parsing ttml

我有以下XML文档:

<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head></head>
<body>
<div xml:lang="it">
<p begin="00:00:00" end="00:00:02" style="violet">first</p>
</div>
</body>
</tt>

我使用AS3成功将内容加载到我的flash对象中。但是如何在<div xml:lang="it">中打印/跟踪属性的值?当我尝试代码时:

trace(myxml.children()[1].children()[0].@xml:lang);

编译器抱怨冒号提供的语法错误。

3 个答案:

答案 0 :(得分:3)

在你的xml中没有'xml'命名空间。可能你错过了它。应该是这样的:

<tt xmlns:xml="http://blabla.com" ... xml:lang="en">

然后你需要声明Namespace实例来访问xml属性,该命名空间的标签:

var ns:Namespace = new Namespace("xml","http://blabla.com") ;

然后您可以使用此代码访问属性:

trace(myxml.children()[1].children()[0].@ns::lang);

答案 1 :(得分:1)

也许使用: .attribute('xml:lang') instead of .@xml:lang

http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/XML.html#attribute()

答案 2 :(得分:1)