为什么我应该使用 XMLList 而不是 XML。换句话说,一个 XMLList 可以做什么,而一个简单的普通 XML 类却不能做什么?毕竟,每个 XMLList 都只是一个 XML。(我对 XML 很特别,因为 Arraylist 等其他列表结构在情况下有所不同)
谢谢。
为什么我应该使用 XMLList 而不是 XML。换句话说,一个 XMLList 可以做什么,而一个简单的普通 XML 类却不能做什么?毕竟,每个 XMLList 都只是一个 XML。(我对 XML 很特别,因为 Arraylist 等其他列表结构在情况下有所不同)
谢谢。
我的理解是XMLList是XML文档的集合。IT 可以是一个子集,也可以是不同 XML 元素的集合。引用 XMLList 文档:
XMLList 对象可以表示一个或多个 XML 对象或元素(包括多个节点或属性),因此您可以将元素作为一个组或集合中的单个元素调用方法。
您还可以将 XMLList 包装在XMLLIstCollection 中,并将其用作 Flex 中基于列表的对象的 dataProvider。
Adobe Docs 关于使用 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 结构变得更加容易。