浏览 108 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-26 关键字: xml读取
需求是这样的: 代码如下: <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:flex="http://www.adobe.com/2006/fc"
layout="absolute" creationComplete="startup()">
<flex:SpringGraph id="springGraph" bottom="0" top="0" right="0" left="0" backgroundColor="#666666"
dataProvider="{graph}" itemRenderer="myItemRenderer"/>
<mx:Script>
<![CDATA[
import com.adobe.flex.extras.controls.springgraph.Graph;
import mx.controls.Alert;
private var graph:Graph = new Graph();
private var nodeArr:Array = new Array();
private var edgeArr:Array = new Array();
//初始化
public function startup():void{
loadXml();
Alert.show("nodeArr length:" + nodeArr.length);//nodeArr length:0(疑惑的地方)
Alert.show("edgeArr length:" + edgeArr.length);//edgeArr length:0(疑惑的地方)
}
//加载xml文件
public function loadXml():void{
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,createArr);//注入createArr方法
loader.load(new URLRequest("cfg/myItemLine.xml"));
}
//遍历xml文件,并未nodeArr、edgeArr赋值
public function createArr(event:Event):void{
var x:XML = new XML(event.target.data);
for(var nodeStr:String in x.Node){
var id:String = x.Node[nodeStr].@id;
var name:String = x.Node[nodeStr].@name;
var ip:String = x.Node[nodeStr].@ip;
var netno:String = x.Node[nodeStr].@netno;
var node:Node = new Node();
node.setId(id);
node.setName(name);
node.setIp(ip);
node.setNetno(netno);
nodeArr.push(node);
}
for(var edgeStr:String in x.Edge){
var fromId:String = x.Edge[edgeStr].@fromId;
var toId:String = x.Edge[edgeStr].@toId;
var fromNetno:String = x.Edge[edgeStr].@fromNetno;
var toNetno:String = x.Edge[edgeStr].@toNetno;
var edge:Edge = new Edge();
edge.setFromId(fromId);
edge.setToId(toId);
edge.setFromNetno(fromNetno);
edge.setToNetno(toNetno);
edgeArr.push(edge);
}
Alert.show("nodeArr length:" + nodeArr.length);//nodeArr length:11(正确的地方)
Alert.show("edgeArr length:" + edgeArr.length);//edgeArr length:12(正确的地方)
}
]]>
</mx:Script>
</mx:Application>
xml文件如下: <?xml version="1.0" encoding="utf-8"?> <graph> <!-- 节点 --> <Node id="0" name="设备11" ip="192.168.10.101" netno="1"/> <Node id="1" name="设备12" ip="192.168.10.102" netno="1"/> <Node id="2" name="设备13" ip="192.168.10.103" netno="1"/> <Node id="3" name="设备21" ip="192.168.20.101" netno="2"/> <Node id="4" name="设备22" ip="192.168.20.102" netno="2"/> <Node id="5" name="设备31" ip="192.168.30.101" netno="3"/> <Node id="6" name="设备32" ip="192.168.30.102" netno="3"/> <Node id="7" name="设备41" ip="192.168.40.101" netno="4"/> <Node id="8" name="设备42" ip="192.168.40.102" netno="4"/> <Node id="9" name="设备51" ip="192.168.50.101" netno="5"/> <Node id="10" name="设备52" ip="192.168.50.102" netno="5"/> <!-- 关系 --> <Edge fromId="0" toId="1" fromNetno="1" toNetno="1"/> <Edge fromId="0" toId="2" fromNetno="1" toNetno="1"/> <Edge fromId="1" toId="2" fromNetno="1" toNetno="1"/> <Edge fromId="0" toId="1" fromNetno="2" toNetno="2"/> <Edge fromId="0" toId="1" fromNetno="3" toNetno="3"/> <Edge fromId="0" toId="1" fromNetno="4" toNetno="4"/> <Edge fromId="1" toId="3" fromNetno="1" toNetno="2"/> <Edge fromId="2" toId="5" fromNetno="1" toNetno="3"/> <Edge fromId="2" toId="8" fromNetno="1" toNetno="4"/> <Edge fromId="5" toId="8" fromNetno="3" toNetno="4"/> <Edge fromId="9" toId="10" fromNetno="5" toNetno="5"/> <Edge fromId="4" toId="9" fromNetno="2" toNetno="5"/> </graph>
本人是flex新手,请XDJM帮忙解答疑惑,不甚感激,谢谢了 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-26
不甚感激,就是不是很感激的意思。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-27
没人解答吗?
|
|
| 返回顶楼 | |


