Apache flex 如何计算XMLList中的重复项并将其分配到ArrayCollection中?

Apache flex 如何计算XMLList中的重复项并将其分配到ArrayCollection中?,apache-flex,Apache Flex,我已经列出了下面的XMLList A. B C A. B C D E D A. C 我想消除空白节点,并创建一个数组集合,如(包含单个参与方的计数) tArr=新阵列集合([{缔约方:“A”,计数:3}, {缔约方:“B”,计数:2}, {党:“C”,计数:3}, {党:“D”,计数:2}, {缔约方:“E”,计数:1}, ]); 提前感谢。这是未经测试的,可能不是最有效的,但应该可以: var partyDict:Dictionary = new Dictionary(); var part

我已经列出了下面的XMLList


A.
B
C
A.
B
C
D
E
D
A.
C

我想消除空白节点,并创建一个数组集合,如(包含单个参与方的计数)

tArr=新阵列集合([{缔约方:“A”,计数:3}, {缔约方:“B”,计数:2}, {党:“C”,计数:3}, {党:“D”,计数:2}, {缔约方:“E”,计数:1}, ]);


提前感谢。

这是未经测试的,可能不是最有效的,但应该可以:

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);
}
var partyDict:Dictionary=newdictionary();
变量方:ArrayCollection=新ArrayCollection();
var xml:xml=ABCABCDEDAC;
for each(var p:XML在XML.party中){
var val:String=p.toString();
如果((val!=null)&&StringUtil.trim(val.length>0){
if(partyDict[val]!=null){
partyDict[val]=(partyDict[val]as int)+1;//可能只是能够执行partyDict[val]+;
}否则{
partyDict[val]=1;
}
}
}
for(变量键:partyDict中的对象){
var o:Object=新对象();
o、 党=关键;
o、 计数=partyDict[键];
缔约方。补充(o);
}

如果您有可能的参与方列表,它只是:

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} )
}
var partiesObjs:ArrayCollection=newarraycollection();
var xml:xml=ABCABCDEDAC;
变量参与方:数组=[“A”、“B”、“C”、“D”]
每一方(var p:参与方中的字符串){
变量计数:int=xml..party.(toString()==p).length()
partiesObjs.addItem({Party:p,Count:Count})
}
解决方案: