2012-06-25 81 views
0

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

Thnx。

回答

1

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

XMLList对象可以表示一个或多个XML对象或元素 (包括多个节点或属性),所以可以呼吁 方法的元素作为基团或上的单个元素在 集合中。

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

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

+1

此外,大多数xml方法(如child(),attribute()等)都会返回一个XMLList,因此如果要使用e4x的全部功能,则只能使用返回XMLList –

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结构。

相关问题