根据Flex中的条件将XML解析为XML

时间:2014-05-08 06:48:53

标签: xml flex actionscript xml-parsing

我是XML新手,我已经分配了一个任务,根据某些条件将一个XML解析为另一个XML。例如:

<xml>
<items>
<item file="sms123" files loaded="20" date="22/12/2014"></item>
<item file="sms23223" files loaded="25" date="22/12/2013"></item>
<item file="mms345" files loaded="30" date="22/06/2014"></item>
<item file="sms02821" files loaded="35" date="31/12/2012"></item>
<item file="mms4738292" files loaded="15" date="21/1/2014"></item>
</items>
</xml>

这是xml文件,我需要根据某些条件将其解析为中间XML文件。我想要的输出xml如下:

<xml>
<items>
<item file="sms" files loaded="80" > </item>
<item file="mms" files loaded="45"></item>
</items>
</xml>

我想要的是根据第一个单词将文件名分组为单个文件名,并添加组中加载的所有文件。

感谢。

1 个答案:

答案 0 :(得分:0)

看看:

public static function getResult(input:XML):XML
{
    var smscounter:int = 0;
    var mmscounter:int = 0;
    for each(var item:XML in XML(input.items[0]).children())
    {
        var fileName:String = item.@file;
        if (fileName.indexOf("sms")) > 0)
        {
            smscounter += Number(item.@loaded);
        }
        else if (fileName.indexOf("mms")) > 0)
        {
            mmscounter += Number(item.@loaded);
        }
    }

    var sms:XML = new XML("<item file='sms' files loaded='" + smscounter + "'/>");
    var mms:XML = new XML("<item file='mms' files loaded='" + mmscounter + "'/>");
    var items:XML = new XML(<items/>);
    items.appendChild(sms);
    items.appendChild(mms);
    var xml:XML = new XML(<xml/>);
    xml.appendChild(items);
    return xml;
}

这应该可以解决问题。