为什么我应该使用XMLLIst而不是简单的简单XML?

时间:2012-06-25 12:23:11

标签: actionscript-3 flash flex

为什么我应该使用XMLList而不是XML。换句话说,XMLList可以做什么,简单的普通XML类不能做什么?毕竟,每个XMLList都只是一个XML。 (我对XML很特殊,因为像Arraylist这样的其他列表结构在某些情况下有所不同)

日Thnx。

2 个答案:

答案 0 :(得分:1)

我的理解是XMLListXML文档的集合。 IT可以是一个子集,也可以是不同XML元素的集合。引用XMLList文档:

  

XMLList对象可以表示一个或多个XML对象或元素   (包括多个节点或属性),因此可以调用方法   元素作为一个组或在单个元素中   集合。

您还可以在XMLLIstCollection中包装XMLList,并将其用作Flex中基于列表的对象的dataProvider。

Adobe Docs on working with XML的这一部分应该有所帮助。

答案 1 :(得分:1)

假设您希望使用递归从XML中提取特定数据:

public static function getNodesByName(myXML_:XMLList, nodeName_:String) : XMLList {
    var result:XMLList = new XMLList();
    for (var i1:Number = 0; i1 < myXML_.children().length(); i1++ ) {
        if (myXML_.children()[i1].name() == nodeName_) {
            result += myXML_.children()[i1].valueOf();
        } else if (myXML_.children()[i1].children()) { 
            result += getNodesByName(XMLList(myXML_.children()[i1].valueOf()), nodeName_);
        }
    }
    return result;
}

此算法返回满足特定要求的节点列表,在本例中为具有相同名称的节点。如您所见,该列表使您可以更轻松地操作XML结构,然后再将其转换为新的XML文档。