Flex 复杂XML 解析XML

<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);

 

 

写的比较烂  大家只看流程解析就可以 代码不好用 请见谅 提供的是思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值