Actionscript 3 E4X使用XML中的命名空间值

时间:2010-06-09 20:17:24

标签: xml actionscript-3 namespaces e4x

我正在使用Action脚本3构建应用程序我正在从Web检索一些XML但是节点名称是mms:图像mms:结果等我的动作脚本编译器抛出一个错误,因为它不期望看到半冒号在节点名称中。如何访问节点?

感谢

1 个答案:

答案 0 :(得分:5)

这些是XML命名空间,它们可能很难使用。查看Using XML namespaces上的Adobe文档。

基本上你必须得到命名空间:

var mmsNS:Namespace = message.namespace("mms");

// alternatively for nested namespaces:

var mmsNS:Namespace = new Namespace("mms", " ... url of namespace ... ");

然后在想要获取应用它的节点时使用它:

var data:XML = message.@mmsNS::Results;

如果您的所有xml都在特定名称空间中,则快捷方式是设置默认名称空间:

default xml namespace = mmsNs;

编辑:您尝试访问的XML命名空间必须在XML片段中声明:

<root xmlns:mms="http://example.com/mms">
    <mms:someNode someAttr="someVal" />
</root>

查看XML Namespaces的w3c文档,以确保您的文档格式正确(甚至可以通过验证程序传递)。