【发布时间】:2011-12-26 05:27:18
【问题描述】:
谁能解释一下 XML 中的命名空间 (xmlns="...") 的确切用途以及在使用 E4X 导航 XML 时必须如何使用它们(..最好在 ActionScript 3 中)?
我无法完全理解它们的目的和用途。
【问题讨论】:
标签: xml actionscript-3 namespaces e4x
谁能解释一下 XML 中的命名空间 (xmlns="...") 的确切用途以及在使用 E4X 导航 XML 时必须如何使用它们(..最好在 ActionScript 3 中)?
我无法完全理解它们的目的和用途。
【问题讨论】:
标签: xml actionscript-3 namespaces e4x
理论上,使用 XML 命名空间是为了避免与标记名称发生冲突。所以我可以创建一个名称空间,其中包含一个名为“mytag”的标签,而其他人创建一个具有相同标签“mytag”的不同名称空间,不会有任何冲突。每个“mytag”标签都会有明显的区别。
在实践中,我发现 XML 命名空间几乎毫无用处(您多久让两个开发人员为同一个 XML 文件创建标签?)而且只会让解析变得非常困难。
在 EX4 中,您需要获取命名空间,然后在每个标记前加上该命名空间。因此,例如,如果您想访问标签<somenamespace::somename>,您将编写:
var somenamespace:Namespace = xml.namespace("somenamespace");
var sometag:XML = somenamespace::somename[0];
如果您在 Google 上搜索,您会发现一些 AS3 类可以从 XML 中删除这些无用的命名空间,以便于解析。
【讨论】:
许多人认为詹姆斯克拉克的解释是最清楚的解释之一:
【讨论】: