2011-08-26 73 views
0

我是XML和XML屬性的新手。我有一些XML文檔,XML可以通過兩種方式來表示在讀:在Flex中使用XML/XML屬性

方法-1

<?xml version="1.0" encoding="UTF-8"?> 
<CATALOG> 
<CD> 
     <TITLE>Empire Burlesque</TITLE> 
     <ARTIST>Bob Dylan</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Columbia</COMPANY> 
     <PRICE>10.90</PRICE> 
     <YEAR>1985</YEAR> 
    </CD> 
    <CD> 
     <TITLE>Hide your heart</TITLE> 
     <ARTIST>Bonnie Tyler</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>CBS Records</COMPANY> 
     <PRICE>8.90</PRICE> 
     <YEAR>1988</YEAR> 
    </CD> 
</CATALOG> 

方法 - 2

<?xml version="1.0" encoding="UTF-8"?> 
<CATALOG> 
    <CD TITLE="Empire Burlesque" ARTIST="Bob Dylan" COUNTRY="USA" COMPANY="Columbia" PRICE="10.90" YEAR="1985"/> 
    <CD TITLE="Hide your heart" ARTIST="Bonnie Tyler" COUNTRY="UK" COMPANY="CBS Records" PRICE="8.90" YEAR="1988"/> 
</CATALOG> 

但例如當我使用此功能過濾哪裏價格> = 9並將數據顯示在網格中。 當使用XML Way 1時,它工作正常,但是當我使用XML Way 2時,datagrid是空的。另外請注意,我在每個DatagridColumn的數據字段使用@ Binding。我的過濾功能是這樣的:

private function myFilter(xml:XML):Boolean 
      { 
       return Number(xml.PRICE) >= 9; 
      } 

感謝

回答

1

在路號2,價格是一個屬性附加傷害,而不是一個子標籤,所以應該用@ symobl訪問。

因此,對於這樣2,您的過濾功能應該是:

private function myFilter(xml:XML):Boolean 
      { 
       return Number([email protected]) >= 9; 
      } 

價格的通知之前,@。

+0

聖人!我完全錯過了...我的部分多麼愚蠢。謝謝 – FlexyBoz