<root>
? <row ID="50300;123" 编号="shebei" 备用5="" 备用6="" />
? <row ID="455;50300" 编号="shebei" 备用5="" 备用6="" />
</root>
把ID分割成 ID='50300'和ID='123'
<fx:Declarations>
??<fx:XML source="test/input.xml" id="input"/>
?</fx:Declarations>
解析成:
<root>
<node label="名称">
?? <node1 id='123'>
????????? <row ID="50300;123" 编号="shebei" 备用5="" 备用6="" />
??????? <row ID="455;50300" 编号="shebei" 备用5="" 备用6="" />
?? <node1>
<node/>
</root>
解析结果如下面:
?var root:XML = <root/>;
????var rowLength :int = input.children().length();
????var rowInfo:String = input.children().@['ID'];
????for(var i:int=0;i<rowLength;i++){
?????var arr:Array = rowInfo.split(";");
?????var row:XML =input.children()[i];
?????for(var j:int=0;j<arr.length;j++){
??????var node2:XML= ObjectUtil.clone(row) as XML;????
??????//?var info:ElemInfo = topoHandle.getElemById(arr[j]);
??????
??????if( topoHandle.getElemById(arr[j]) == null){
???????continue;
??????}
??????var type:String =? topoHandle.getElemById(arr[j]).type;//不需要你们判断
??????var node:XML;
??????if(root.children().(@label == type )==undefined || input.children() ==null){
???????node=<node/>;
???????node.@label =‘名称’;//换成自己的名字
???????root.appendChild(node);
??????}else{
???????node = root.children().(@label =='名称')[0];
??????}
??????var node1:XML;
??????if(node.children() == null || node.children().(@id == arr[j]) == undefined){
???????node1 = <node1/>;
???????node1.@id = arr[j];
???????node.appendChild(node1);
??????}else{
???????node1 = node.children().(@id == arr[j])[0];
??????}
??????node1.appendChild(node2);
?????}
?????
????}
????root.appendChild(node);
????//????trace(root);
????trace(node);
?
?
写的比较烂? 大家只看流程解析就可以 代码不好用 请见谅 提供的是思路