2010-05-19 18 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}) 
} 
相关问题