【问题标题】:Actionscript 3.0 - Is there a way to store XML namespaces in an array?Actionscript 3.0 - 有没有办法将 XML 命名空间存储在数组中?
【发布时间】:2011-11-29 02:05:33
【问题描述】:

您好,我想知道是否可以将命名空间存储在数组中? 想象一下我有无限的命名空间,我会使用“for”来自动存储它们,我需要什么?我认为数组不会按原样保存名称空间。

【问题讨论】:

  • 看到有人需要在运行时处理命名空间很奇怪。你用它们做什么?你确定你知道命名空间是什么? :)
  • 我需要它们读取 xml 文件中的命名空间。我的意图是创建一个类,用户将在命名空间及其 url 中进行设置。它将被保存在一个数组中,然后像一个字符串一样使用,然后将其作为参数传递以生成循环内一行所需的所有命名空间(例如:for)。然后我需要调用每个生成的命名空间(一个特定的)来访问 xml 文件并获取我想要的数据。
  • 基本上我正在尝试创建一个可以打开任何带有命名空间的 xml 的类,所以我给你提出的问题就像一个原型或进一步步骤的调查:) 因为我知道这样做我' d 需要告诉我的班级读取 xml 文件的标题并生成命名空间来存储它们及其 url。
  • 啊,XML 命名空间!没有提到 XML,我只能想到 AS3.0 命名空间。

标签: xml actionscript-3


【解决方案1】:

只需将您的 XML 文件放入 XML 对象并调用 namespaceDeclarations():

var xml:XML =
    <root xmlns:ns="some.namespace">
        <ns:element/>
    </root>;
var namespaces:Array = xml.namespaceDeclarations();

这里namespaces 是命名空间对象数组。第一个有前缀“ns”和uri“some.namespace”。

【讨论】:

  • 所以基本上你是说如果我在我的 xml 对象中使用 namespaceDeclarations() 它会自动理解并捕获我的 xml 文件中声明的所有命名空间?有那么容易吗?感谢您的反馈。当我尝试时我会说些什么:)
【解决方案2】:

就像亚历克斯说的,

var xml:XML =
    <root xmlns:ns="some.namespace">
        <ns:element/>
    </root>;
var namespaces:Array = xml.namespaceDeclarations();

ActionScript 中的数组不是固定大小的(就像在 C++ 中一样)。这意味着您可以非常轻松地从数组中添加/删除。要将项目添加到数组中,请使用 myArray.push(myItem);

删除有点复杂。

要删除最后一项,请使用myArray.pop();

假设你有一个数组

var a:Array=[1, 2, 3, 4, 5, 6];
a.splice(3, 1); //Result: [1, 2, 3, 5, 6] Removes 1 element from array index 3

【讨论】:

    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2019-11-13
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    相关资源
    最近更新 更多