There is not much to describe so :
<mx:XML id="inputData" > <Tulokset> <Tulos id="xxx" group="xx" /> <Tulos id="xxx" group="xx" /> <Tulos id="xxx" group="xx" /> </Tulokset> </mx:XML> <mx:AdvancedDataGrid creationComplete="gc.refresh()"> <mx:dataProvider> <mx:GroupingCollection source="{inputData.Tulos}" id="gc"> <mx:Grouping> <mx:GroupingField name="@group" /> </mx:Grouping> </mx:GroupingCollection> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="@id" /> </mx:columns> </mx:AdvancedDataGrid>
The source is here.
Update: The below example shows how to use grouping when the data is in child nodes instead of attributes. This is a bit tricky because GroupingCollection is derived from HierarchicalData which treats child nodes as children by default. This leads to problems when we try to display the data after grouping. The trick is to make use of the childrenField property and point it to something like "undefined".
<mx:XML id="inputData" > <Tulokset> <Tulos> <id>xx1</id> <group>xxx</group> </Tulos> <Tulos> <id>xx2</id> <group>xxx</group> </Tulos> <Tulos> <id>xx3</id> <group>xxx</group> </Tulos> </Tulokset> </mx:XML> <mx:AdvancedDataGrid creationComplete="gc.refresh()"> <mx:dataProvider> <mx:GroupingCollection source="{inputData.Tulos}" id="gc" childrenField="undefined"> <mx:Grouping> <mx:GroupingField name="group" /> </mx:Grouping> </mx:GroupingCollection> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="id" /> </mx:columns> </mx:AdvancedDataGrid>
The source is here.
Please note that childrenField is also helpful when we are trying to display XML data with data and children as child nodes. Use it to point to the proper node name which contains the children. In the following example we need to set childrenField="details" to work properly.
<mx:XML id="special"> <rows> <row> <name>A</name> <fund>100</fund> <details> <row> <name>a</name> <fund>20</fund> </row> <row> <name>b</name> <fund>80</fund> </row> </details> </row> <row> <name>C</name> <fund>200</fund> <details> <row> <name>a</name> <fund>80</fund> </row> <row> <name>b</name> <fund>80</fund> </row> <row> <name>c</name> <fund>40</fund> </row> </details> </row> </rows> </mx:XML> <mx:AdvancedDataGrid > <mx:dataProvider> <mx:HierarchicalData source="{special.row}" childrenField="details" > </mx:HierarchicalData> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="name" /> <mx:AdvancedDataGridColumn dataField="fund" /> </mx:columns> </mx:AdvancedDataGrid>