爲什麼我應該使用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 –