2015-11-05 66 views
0

有一個XML文件,它由各種節點組成。我需要更改節點的一個屬性,然後將所有內容覆蓋爲新版本。我發現that SO問題,但Flash IDE根本無法理解我的XML文件並拋出語法錯誤。更改XML的內容

我在程序中進行了計算,應該用XML中的特定屬性編寫。然後更新版本的文件替換爲前者(覆蓋)。

我的XML文件龐大而複雜,因此我無法將所有的代碼放在這裏。不過,我可以告訴你,我從文件中獲得所有內容,並將其放在代碼中,如上面的鏈接。

<?xml version="1.0" encoding="UTF-8"?><!--I guess this part is not recognised and need to be added just before to save--> 
<Something x="0" y="0" width="1437.5" height="1010"> 

閃存預計x="0";和果然停止。

什麼是更改XML屬性的正確方法?


編輯:

我使用的XML文件中的陣列被切片成片。然後,我添加必要的零件並保持那樣。但是我不知道有沒有更好的方式來做到這一點,而不會搞亂數組。

回答

1

要更改的XML屬性,你可以使用E4XECMAScript for XML),像這樣:

var xml:XML = <objects> 
    <object id="mc_01" x="0" y="0" width="1437.5" height="1010" /> 
    <object id="mc_02" x="300" y="400" width="150" height="100" /> 
    <object id="mc_03" x="120" y="0" width="50" height="30" /> 
</objects>; 

// select the object with its id (for example), and change its "x" attribute 
xml.*.(@id == 'mc_02')[email protected] = 800; 

trace(xml); 

// gives 
// 
// <objects> 
// <object id="mc_01" x="0" y="0" width="1437.5" height="1010"/> 
// <object id="mc_02" x="800" y="400" width="150" height="100"/> 
// <object id="mc_03" x="120" y="0" width="50" height="30"/> 
// </objects> 

更多關於ActionScript 3中使用XML,看看here

希望能有所幫助。

+0

如果我弄錯了,請糾正我。通過'xml。*。(@ id =='mc_02')。@ x = 800;'我不需要重寫文件,init?我的理解是,在該行之後的第一次閱讀中,結果將被更新。 – coner

+1

@coner如果您需要另一次編輯,可以將其保存到xml文件中,否則,您可以將其用於該會話。 – akmozo