flex 操作xml

//xml 操作


   function get_xml_depth(xml_source:XML):int//获取xml深度
   {
   var len:int=0;
   var xml_list:XMLList=new XMLList(xml_source);
   while(xml_list.length()!=0)
   {
   xml_list=xml_list.children();
   len++;
   }
   return len;
   }


function merger_xml(xml1:XML,xml2:XML):XML//合并xml
   {
   if(xml1.toString()!=xml2.toString())
   {
   var xml1_first_len:int=xml1.children().length();//取得skill的长度
   var i:int;
       var xml2_first_label:String=xml2.model[0].@label;
       var xml2_sec_label:String=xml2.model[0].model[0].@label;
   for(i=0;i<xml1_first_len;i++)
   {
   var xml1_first_label:String= xml1.model[i].@label;
   if(xml1_first_label==xml2_first_label)
   {
   //继续查找下一级
   var j:int;
   var xml1_sec_len:int=xml1.model[i].model.length();//取得大项的长度
   for(j=0;j<xml1_sec_len;j++)
   {
   var xml1_sec_label:String=xml1.model[i].model[j].@label;
   if(xml1_sec_label==xml2_sec_label)
   {
   var xml1_thr:XML=xml1.model[i].model[j];
   var xml2_thr:XML=xml2.model[0].model[0].model;
   xml1_thr.appendChild(xml2_thr);
   }
   else
   if(j==(xml1_sec_len-1) && xml1_sec_label!=xml2_sec_label)
   {
   var xml1_sec:XML=xml1.model[i];
   var xml2_sec:XML=xml2.model[0].model[0];
   xml1_sec.appendChild(xml2_sec);//没有相同的大项 则 添加大项
   }
   }
   }
   else
   if(i==(xml1_first_len-1) && xml1_first_label!=xml2_first_label )
   {
   var xml2_fir:XML=xml2.model[0];
      xml1.appendChild(xml2_fir);//没有相同的skill的label则添加skill的同级xml (rigth)
       }
   }
   }
   // Alert.show(xml1);
       return xml1;
   }
















   function get_xml_xml(DataSource:XML , compare:String, remarks:String):XML//DataGrid to xml
     {
       var len_xml_skill:int=DataSource.children().children().length();;//skill 长度
     var k:int;
     var skill_len:int;
    
     for(skill_len=0;skill_len<len_xml_skill;skill_len++)
     {
     var len_xml_big:int=DataSource.model[0].model[skill_len].model.length();
   for(k=0;k<len_xml_big;k++)
   {
   var len_xml_smalls:int=DataSource.model[0].model[skill_len].model[k].model.length();//细类长度
       var j:int=0;
   for(j=0;j<len_xml_smalls;j++)
   {
   var key_xml_small:String=DataSource.model[0].model[skill_len].model[k].model[j].@key;

   if(key_xml_small==compare)//根据key 找出所有的属性
   {
  
   var department_label:String=DataSource.model[0].@label;
       var department_type:String=DataSource.model[0].@type;
  
   var skill_label:String=DataSource.model[0].model[skill_len].@label;
   var skill_type:String=DataSource.model[0].model[skill_len].@type;
  
   var big_label:String=DataSource.model[0].model[skill_len].model[k].@label;
   var big_type:String=DataSource.model[0].model[skill_len].model[k].@type;
  
   var small_label:String=DataSource.model[0].model[skill_len].model[k].model[j].@label;
   var small_key:String=compare;
   var small_remarks:String=remarks;
  
   //把取得的数据变成xml//格式不对
   /* var xml_append_small:XML=<model />;
   xml_append_small.@key=small_key;
   xml_append_small.@label=small_label;
   xml_append_small.@remarks=small_remarks;
  
   var xml_append_big:XML=<model></model>;
   xml_append_big.@label=big_label;
   xml_append_big.@type=big_type;
   xml_append_big.appendChild(xml_append_small);
  
   var xml_append_skill:XML=<model></model>;
   xml_append_skill.@label=skill_label;
   xml_append_skill.@type=skill_type;
   xml_append_skill.appendChild(xml_append_big);
  
   var xml:XML=<model label=""></model>;
   xml.@label=department_label;
   xml.@type=department_type;
   xml.appendChild(xml_append_skill);*/
   }
   }
  
   }
     }
   return xml;
        } 
      }











    private function divideXml(len_xml_compliantData:int,change_xml:XML,save_datagrid2:String ):void//分条发送数据
    {
       var m2:int=len_xml_compliantData%2;
       var len:int;
       if(m2==0)
       {
      len=len_xml_compliantData/2;
       }
       else
       {
       len=len_xml_compliantData/2+1;
       }
       var i:int;
       var j:int=len_xml_compliantData-1;
       var xml_sun_compliant:XML=<cti></cti>;
      // Alert.show(len.toString()+"......"+j.toString());
       for(i=0;i<len;i++)
       {
       if(j>=0)
       {
         var xml1:XML=change_xml.model[j];
         xml_sun_compliant.appendChild(xml1);
         j--;
         if(j>=0)
         {
         var xml2:XML=change_xml.model[j];
         xml_sun_compliant.appendChild(xml2);
         j--;
         }
       }
        // Alert.show(xml_sun_compliant.toString());
         save_datagrid2=xml_sun_compliant.toString();
         myHttp.initHttp(actCode_http_send,actCode_url,save_datagrid2);
         xml_sun_compliant=<cti></cti>;
    }    
    }





    private function divideXml(len_xml_compliantData:int,change_xml:XML,save_datagrid2:String ):void//分条发送数据
    {
       var m2:int=len_xml_compliantData%2;
       var len:int;
       if(m2==0)
       {
      len=len_xml_compliantData/2;
       }
       else
       {
       len=len_xml_compliantData/2+1;
       }
       var i:int;
       var j:int=len_xml_compliantData-1;
       var xml_sun_compliant:XML=<cti></cti>;
      // Alert.show(len.toString()+"......"+j.toString());
       for(i=0;i<len;i++)
       {
       if(j>=0)
       {
         var xml1:XML=change_xml.model[j];
         xml_sun_compliant.appendChild(xml1);
         j--;
         if(j>=0)
         {
         var xml2:XML=change_xml.model[j];
         xml_sun_compliant.appendChild(xml2);
         j--;
         }
       }
        // Alert.show(xml_sun_compliant.toString());
         save_datagrid2=xml_sun_compliant.toString();
         Alert.show(save_datagrid2);
         myHttp.initHttp(actCode_http_send,actCode_url,save_datagrid2);
         xml_sun_compliant=<cti></cti>;
    }    
    }





你可能感兴趣的:(xml,Flex,J#,sun)