2012-06-25 83 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結構。

相關問題