2010-05-19 65 views
0

我下面的XMLList,如何統計XMLList中的重複項目並將它們分配到ArrayCollection中?

<party/> <party/> <party/> <party>A</party> <party>B</party> <party>C</party> <party>A</party> <party>B</party> <party>C</party> <party>D</party> <party>E</party> <party>D</party> <party>A</party> <party/> <party>C</party>

我想消除空白點,並做出一個ArrayCollection像(有個別政黨的數量),

塔爾=新ArrayCollection的([{方: 「A」,Count:3}, {Party:「B」,Count:2}, {Party:「C」,Count:3}, {Party:「D」,Count:2}, {聚會:「E」,Count:1}, ]);

在此先感謝。

+0

解決方案: HTTP:/ /www.linkedin.com/groupItem?view=&gid=65596&type=member&item=20332755 – Rishi 2010-07-15 05:52:04

回答

0

這是未經測試,可能不是最有效的,但應該工作:

var partyDict:Dictionary = new Dictionary(); 
var parties:ArrayCollection = new ArrayCollection(); 

var xml:XML = <root><party/><party/><party/><party>A</party><party>B</party><party>C</party><party>A</party><party>B</party><party>C</party><party>D</party><party>E</party><party>D</party><party>A</party><party/><party>C</party></root>; 

for each (var p:XML in xml.party) { 
    var val:String = p.toString(); 
    if ((val != null) && StringUtil.trim(val).length > 0) { 
     if (partyDict[val] != null) { 
      partyDict[val] = (partyDict[val] as int) + 1; // may simply be able to do partyDict[val]++; 
     } else { 
      partyDict[val] = 1; 
     } 
    } 
} 

for (var key:Object in partyDict) { 
    var o:Object = new Object(); 
    o.Party = key; 
    o.Count = partyDict[key]; 
    parties.addItem(o); 
} 
0

如果有可能的各方的列表,它只是:

var partiesObjs:ArrayCollection = new ArrayCollection(); 

var xml:XML = <root><party/><party/><party/><party>A</party><party>B</party><party>C</party><party>A</party><party>B</party><party>C</party><party>D</party><party>E</party><party>D</party><party>A</party><party/><party>C</party></root>; 
var parties:Array = ["A","B","C","D"] 

for each(var p:String in parties){ 
    var count:int = xml..party.(toString() == p).length() 
    partiesObjs.addItem({Party:p, Count:count}) 
} 
相關問題