1、Flex读取XML的两种方式:
<fx:Declarations>
<!-- 1 -->
<fx:XML id="xmldata" source="data/testdata.xml" format="e4x"/>
<!-- 2 -->
<s:HTTPService id="httpdata" url="data/testdata.xml" resultFormat="e4x" result="showXML(event)" />
</fx:Declarations>
2、HTTPService 读取XML并显示在 Tree 中
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" applicationComplete="init()"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:HTTPService id="httpdata" url="data/testdata.xml" resultFormat="e4x" result="showXML(event)" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private function init():void {
httpdata.send();
}
private function showXML(event:ResultEvent):void {
var treeData:XML = event.result as XML;
t.dataProvider = treeData;
}
]]>
</fx:Script>
<mx:Tree id="t" width="339" height="264" labelField="@label" />
</s:Application>
XML文本:
<?xml version="1.0" encoding="UTF-8"?>
<books label="books">
<book label="book1">
<id label="id">1001</id>
<name label="name">book1</name>
<price label="price">1</price>
</book>
<book label="book2">
<id label="id">1002</id>
<name label="name">book2</name>
<price label="price">2</price>
</book>
<book label="book3">
<id label="id">1003</id>
<name label="name">book3</name>
<price label="price">3</price>
</book>
<book label="book4">
<id label="id">1004</id>
<name label="name">book41</name>
<price label="price">4</price>
</book>
<book label="book5">
<id label="id">1005</id>
<name label="name">book5</name>
<price label="price">5</price>
</book>
</books>