2011-11-29 96 views
0

你好我想知道是否有可能将名称空间存储在数组中? 想象一下,我有无限的命名空间,我会用“for”自动存储它们,我需要什么?我不认为一个数组会像原样保存名称空间。Actionscript 3.0 - 有没有办法将XML名称空间存储在数组中?

+3

很奇怪看到有人需要处理在运行时的命名空间。你对他们做什么?你确定你知道什么是命名空间吗? :) – alxx

+0

我需要他们读取XML文件中的命名空间。我的意图是做一个类,用户将设置在名称空间和它的URL。它将被保存在一个数组中,然后像一个字符串一样被使用,然后它将作为参数传递,以生成循环内一行所需的所有命名空间(例如:for)。然后,我需要调用生成的每个命名空间(特定的一个)到XML文件并获取我想要的数据。 – bunnyannihilator89

+0

basecally我试图让一个类打开任何与名称空间的XML,所以这个问题,我让你是一个原型或调查的进一步步骤:)因为我知道这样做,我需要告诉我的课读取xml文件的头文件并生成命名空间来存储它们和它们的url。 – bunnyannihilator89

回答

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”。

+0

所以基本上你是说如果我在我的xml对象中使用namespaceDeclarations()它会自动理解并捕获在我的xml文件中声明的所有命名空间?这很容易吗? 感谢您的反馈。当我尝试时,我会说点什么:) – bunnyannihilator89

0

像阿里克斯说,

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 
相关问题