为什么我应该使用XMLList而不是XML。换句话说,XMLList可以做什么,一个简单的纯XML类不能做什么?毕竟,每个XMLList只是一个XML。 (我对XML很奇怪,因为像Arraylist这样的其他列表结构的情况有些不同)为什么我应该使用XMLLIst而不是简单的XML?
Thnx。
为什么我应该使用XMLList而不是XML。换句话说,XMLList可以做什么,一个简单的纯XML类不能做什么?毕竟,每个XMLList只是一个XML。 (我对XML很奇怪,因为像Arraylist这样的其他列表结构的情况有些不同)为什么我应该使用XMLLIst而不是简单的XML?
Thnx。
我的理解是,XMLList是XML文件的集合。 IT可能是一个子集,也可能是一组不同的XML元素。引述的XMLList文档:
XMLList对象可以表示一个或多个XML对象或元素 (包括多个节点或属性),所以可以呼吁 方法的元素作为基团或上的单个元素在 集合中。
您也可以在XMLLIstCollection中包装一个XMLList,并将它用作Flex中的基于列表的对象的dataProvider。
Adobe Docs on working with XML这部分应该有所帮助。
比方说,你想用递归来提取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结构。
此外,大多数xml方法(如child(),attribute()等)都会返回一个XMLList,因此如果要使用e4x的全部功能,则只能使用返回XMLList –