我是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>
我想要的是根据第一个单词将文件名分组为单个文件名,并添加组中加载的所有文件。
感谢。
答案 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;
}
这应该可以解决问题。