<?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>
뭐... 그냥... 필요할때가 있음.. ㅡ.ㅡ;;