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

Posted

技术标签:

【中文标题】根据 Flex 中的条件将 XML 解析为 XML【英文标题】:Parsing an XML to XML based on conditions in Flex 【发布时间】:2014-06-25 10:15:57 【问题描述】:

我是 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】:

看看:

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;

这应该可以解决问题。

【讨论】:

非常感谢兄弟。我还没有执行上面的代码,因为我不知道在Flex中哪里写这个代码。请帮忙。 我编辑了我的答案,应该更容易理解。您将输入XML 提供给函数,它会产生所需的输出XML。由于这是public static function,它可以在任何地方执行。 此代码显示如下错误: 1119: 访问可能未定义的属性通过静态类型字符串的引用加载。它在这一行显示错误 smscounter += Number(fileName.@loaded); 发生了动作脚本错误,提示:TypeError: Error #1090: XML parser failure: element is malformed. 再次编辑。暂时无法测试代码,我的环境没有搭建好。

以上是关于根据 Flex 中的条件将 XML 解析为 XML的主要内容,如果未能解决你的问题,请参考以下文章

Scala 解析 XML获取相应的值

flex中如何解析xml文件生成sql语句

如何根据条件从 XML 中删除节点?

Firefox 开发者控制台中的 XML 解析错误

“根据条件在 testNG 中执行测试”

将 XML 文件中的所有元素解析为 CSV,无需硬编码值