2010-07-09 3 views
2

я есть кодКак переименовать атрибут в XML?

<record id="1" name="CustomerInfo"> 
    <field name="id" index="1" type="String"/> 
</record> 

я хочу переименовать «Name» атрибут «матч» как

<record id="1" match="CustomerInfo"> 
    <field match="id" index="1" type="String"/> 
</record> 
+0

Можете ли вы проверить метод setName и сказать, работает ли он? У меня нет доступа к компилятору Flash сейчас – Amarghosh

ответ

2

Вы можете добавить новое поле на основе старого, а затем удалить старый:

var xml:XML = <record id="1" name="CustomerInfo"> 
       <field name="id" index="1" type="String"/> 
       </record>; 

// create new one 
[email protected][email protected]; 

// delete old one 
delete [email protected]; 
0

Попробуйте setName method: Я не использовал его, но docs говорит, что он будет работать и с атрибутами.

var xml:XML = <record id="1" name="CustomerInfo"> 
       <field name="id" index="1" type="String"/> 
       </record>; 

[email protected][0].setName("match"); 
trace(xml.toXMLString()); 

[email protected][0].setName("match"); 
trace(xml.toXMLString()); 

Обновление: Это работает в Firefox e4x JavaScript, поэтому он должен работать в ActionScript тоже. Попробуйте следующее:

var xml:XML = <record id="1" name="CustomerInfo"> 
       <field name="id" index="1" type="String"/> 
       </record>; 

var names:XMLList = xml.descendants("@name");//all `name` attributes 
for(var i:Number = 0; i < names.length(); i++) 
{ 
    names[i].setName("match"); 
} 
trace(xml.toXMLString());