2011-11-29 97 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 
相關問題