Как переименовать атрибут в XML? - PullRequest
2 голосов
/ 09 июля 2010

У меня есть XMl как

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

Я хочу переименовать атрибут " name " в " match " как

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

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

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

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

// create new one
xml.field.@match=xml.field.@name;

// delete old one
delete xml.field.@name;
0 голосов
/ 09 июля 2010

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

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

xml.@name[0].setName("match");
trace(xml.toXMLString());

xml.field.@name[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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...