OldHawk

菜地一块,欢迎拍砖
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Sorting XML documents using an XMLListCollection

Posted on   OldHawk  阅读(509)  评论(0编辑  收藏  举报
The following example shows how you can sort an XML document by converting it into an XMLListCollection and applying a sort. You can also easily reverse the current sort by calling the SortField object’s reverse() method and refreshing the XMLListCollection object
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/12/04/sorting-xml-documents-using-an-xmllistcollection/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout
="vertical"
        verticalAlign
="middle"
        backgroundColor
="white">

    
<mx:Script>
        
<![CDATA[
            import mx.utils.StringUtil;

            private function list_labelFunc(item:Object):String {
                return StringUtil.substitute("{0} {1} ({2} {3})",
                        item.@label, // city
                        item.@name, // name
                        item.parent().parent().@abbrev, // league
                        item.parent().@label); // division
            }

            private function checkBox_click(evt:MouseEvent):void {
                sortField.reverse();
                xmlListColl.refresh();
            }
        
]]>
    
</mx:Script>

    
<mx:XML id="mlb" source="mlb.xml" />

    
<mx:XMLListCollection id="xmlListColl"
            source
="{mlb.league.division.team}">
        
<mx:sort>
            
<mx:Sort>
                
<mx:fields>
                    
<mx:SortField id="sortField"
                            name
="@label"
                            caseInsensitive
="true" />
                
</mx:fields>
            
</mx:Sort>
        
</mx:sort>
    
</mx:XMLListCollection>

    
<mx:ApplicationControlBar dock="true">
        
<mx:CheckBox id="checkBox"
                label
="reverse()"
                labelPlacement
="left"
                click
="checkBox_click(event);" />
    
</mx:ApplicationControlBar>

    
<mx:List id="list"
            dataProvider
="{xmlListColl}"
            labelFunction
="list_labelFunc"
            width
="300"
            rowCount
="8" />

</mx:Application>

努力加载评论中...
点击右上角即可分享
微信分享提示