如何在Flex中动态地向xml节点添加属性?

时间:2013-04-08 04:56:55

标签: xml flex

我需要动态地向XML中的所有节点添加一个属性。我的xml如下:

   <root>
     <item>
        <item>Americas</item>
        <item>Canada</item>
        <item>Ottawa</item>
        <item>Category 1</item>
        <item>Product 01</item>
        <item>4171.132339235787</item>
        <item>4181.132339235787</item>
      </item>
   </root>

我需要为上面的XML中的每个节点添加名为“name”的属性:

<root>
 <item name="">
   <item name="Americas"/>
   <item name="Canada"/>
   <item name="Ottawa"/>
   <item name="Category 1"/>
   <item name="Product 01"/>
   <item name="4171.132339235787"/>
   <item name="4181.132339235787"/>
 </item>
</root>

如何在Flex XML中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您需要一个名为label的属性吗?但是你的最终XML没有任何这样的属性。无论如何,您可以使用以下命令将“name”属性添加到xml的每个子元素:

 <mx:Script>
            <![CDATA[
                private var newLoad:URLLoader;
                private var link:String = "xl.xml";
                private var req:URLRequest = new URLRequest(link);
                loadU();//Place this call in the creation complete handler of the Application's CreationComplete Event
                private function load(e:Event):void
                {
                    var xm:XML = XML(e.target.data);
                    for each(var node:XML in xm.item.item)
                    {
                        node.@name = node;
                    }
                    var file:FileReference = new FileReference();
                    file.save(xm,"x1.xml");//Save the output file
                }
                private function loadU():void
                {
                    newLoad = new URLLoader();
                    newLoad.addEventListener(Event.COMPLETE,load);
                    newLoad.load(req);
                }
            ]]>
        </mx:Script>

如果这是你想要的,请告诉我。