독도 광고 모금 캠페인

'AS3 XML MAKE'에 해당되는 글 1건

  1. 2008.09.22 ARRAY상태로 들어온 XML 데이터로 XML만들기 by 이현호
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/11/04/positioning-labels-in-a-flex-piechart-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">
    <mx:Script>
        <![CDATA[
         import mx.controls.Alert;
         import com.hexagonstar.util.debug.Debug;
      private var _datas:Array = [ ["Level 1" , "1" , "Data 1-1","Data 1-2","Data 1-3","Data1-4","Data 1-5"],
          ["Level 2-1" , "2" , "Data 2-1","Data 2-2","Data 2-3","Data 2-4","Data 2-5"],
          ["Level 3-1" , "3" , "Data 3-1","Data 3-2","Data 3-3","Data 3-4","Data 3-5"],
          ["Level 4-1" , "4" , "Data 4-1","Data 4-2","Data 4-3","Data 4-4","Data 4-5"],
          ["Level 4-2" , "4" , "Data 5-1","Data 5-2","Data 5-3","Data 5-4","Data 5-5"],
          ["Level 2-3" , "2" , "Data 10-1","Data 10-2","Data 10-3","Data 10-4","Data 10-5"],
          ["Level 3-2" , "3" , "Data 6-1","Data 6-2","Data 6-3","Data 6-4","Data 6-5"],
          ["Level 2-2" , "2" , "Data 7-1","Data 7-2","Data 7-3","Data 7-4","Data 7-5"],
          ["Level 3-3" , "3" , "Data 8-1","Data 8-2","Data 8-3","Data 8-4","Data 8-5"],
          ["Level 3-4" , "3" , "Data 9-1","Data 9-2","Data 9-3","Data 9-4","Data 9-5"] ];
  
      private var _valueCount:int = 5;
            public function makeXMLClick():void
            {
             xmlData();
            }
       
            protected function xmlData():void
            {
             var dataLen:int = _datas.length;
             var mainXML:XML = new XML(<node />);
             var makeXML:XML = null;
             var prevLevel:int = 0;
             var dIdx:int = 0;
             var tempArr:Array = null;
             
             tempArr = _datas[0];
             
             // RootLevel데이터 읽어오기
             var xmlStr:String = "<node label=\""+tempArr[0]+"\" ";
             for(dIdx ; dIdx < _valueCount ; dIdx++)
             {              
              xmlStr += "value"+((dIdx+1)<10?"0"+(dIdx+1):""+(dIdx+1))+"=\""+tempArr[2+dIdx]+"\" ";              
             }
             xmlStr += "/>";
             
             mainXML.appendChild(new XML(xmlStr));
             
             prevLevel = Number(tempArr[1]);
             
//             Debug.trace("ROOT : "+mainXML.toXMLString());
             
             makeXML = mainXML.children()[0];
             
             var tempXML:XML = null;
             for(var idx:int =1 ; idx < dataLen ; idx++)
             {
              tempArr = _datas[idx];
     xmlStr = "<node label=\""+tempArr[0]+"\" ";
              for(dIdx = 0; dIdx < _valueCount ; dIdx++)
              {              
               xmlStr += "value"+((dIdx+1)<10?"0"+(dIdx+1):""+(dIdx+1))+"=\""+tempArr[2+dIdx]+"\" ";              
              }
              xmlStr += "/>";
              
              tempXML = new XML(xmlStr);
              
              if(prevLevel < Number(tempArr[1]))
              { 
               makeXML.appendChild(tempXML);
               prevLevel = Number(tempArr[1]);
               //Debug.trace("A"+idx+","+prevLevel+","+tempArr[1]+":"+makeXML.childIndex()+","+makeXML.children().length());
               makeXML = tempXML;
              }
              else
              {
               if(prevLevel == Number(tempArr[1]))
               {
                makeXML = makeXML.parent();                
               }
               else
               {
                var rLen:int = prevLevel - Number(tempArr[1]) + 1;
                for(var rIdx:int = 0 ; rIdx  < rLen ; rIdx++)
                {
                 makeXML = makeXML.parent();
                }                
               }               
               makeXML.appendChild(tempXML);               
               prevLevel = Number(tempArr[1]);
               //Debug.trace("B"+idx+","+prevLevel+","+tempArr[1]+":"+makeXML.childIndex()+","+makeXML.children().length()+","+makeXML.length());
               makeXML = tempXML;
              }              
             }
             
//             Debug.trace("RSLT : "+mainXML.toXMLString());
             
//             Alert.show("XML","XML만들기");
            }
        ]]>
    </mx:Script>

    <mx:Button label="XML 만들기" click="makeXMLClick()" />
</mx:Application>


뭐... 그냥... 필요할때가 있음.. ㅡ.ㅡ;;
Posted by 이현호
,