Flex--之XML、XMLLIST和XMLListCollection的关系和区别

XML类是最处理XML的最小的单元,它必须有且只有一个根节点。例如:

 

[c-sharp]   view plain copy
  1.  1. private var company:XML =     
  2.  2.    <list>    
  3.  3.     <department title="Finance" code="200">    
  4.  4.      <employee name="John H"/>     
  5.  5.      <employee name="Sam K"/>    
  6.  6.     </department>    
  7.  7.     <department title="Operations" code="400">     
  8.  8.      <employee name="Bill C"/>    
  9.  9.      <employee name="Jill W"/>    
  10. 10.     </department>                       
  11. 11.     <department title="Engineering" code="300">     
  12. 12.      <employee name="Erin M"/>    
  13. 13.      <employee name="Ann B"/>    
  14. 14.     </department>                                   
  15. 15.    </list>;    

 

如果把<list>去掉的话,那它就不是一个XML对象,而变成了XMLList对象了。

下面来说一下XMLList对象,XMLList就是包含一个或多个XML对象的类。对于只包含一个 XML 元素的 XMLList 对象,可以使用 XML 类的所有属性和方法,因为包含一个 XML 元素的 XMLList 被视为等同于 XML 对象。但是如果它包含多个的话,那么调用XML的方法将会报出异常。虽然xml对象可以像上面一样初始化,但是XMLList却不可以。可以通过构造函数 把一个字符串构造一个XMLList对象。

var xmllist :XMLList = new XMLList(String str);

 或者用标签创建

 

 

[java]   view plain copy
  1.  1. <mx:XMLList xmlns="">    
  2.  2.         <book>    
  3.  3.             <author>Peter F. Hamilton</author>    
  4.  4.             <title>Pandora's Star</title>    
  5.  5.             <image>assets/pandoras_star_.jpg</image>    
  6.  6.             <date>Dec 32004</date>    
  7.  7.         </book>    
  8.  8.         <book>    
  9.  9.             <author>Peter F. Hamilton</author>    
  10. 10.             <title>Judas Unchained</title>    
  11. 11.             <image>assets/judas_unchained.jpg</image>    
  12. 12.             <date>Feb 282006</date>    
  13. 13.         </book>    
  14. 14.     </mx:XMLList>    

 

 

XMLListCollection类就是xmllist的集合形式,类似于array的集合形式是arraycollection,这两种集合是绑定到组件的数据源,他们具体动态感知变化的特性。

XMLListCollection对象必须这样创建:new XMLListCollection(XMLList xmllist);

在本例中,可以这样private var companyData:XMLListCollection = new XMLListCollection(company.department);

company.department返回一个xmllist对象。

你可能感兴趣的:(Collection)