2010-04-22 105 views
0

我想要拿出最好的XML模式來支持標記過濾。然後是一種在大量標籤上過濾xml的方法。因此,這裏的XML:多個屬性xml過濾器as3 e4x

var videoXML:XML= 
<?xml version="1.0" encoding="UTF-8"?> 
    <videos> 
     <video> <tags label="dogs,brown,lawns" /> </video> 
     <video> <tags label="dogs,cats" /> </video> 
     <video> <tags label="cats,lawns" /> </video> 
    </videos> 

,我現在過濾方式:

var filteredList:XMLList = videoXML..video.tags.(@label.indexOf("lawns") != -1 && @label.indexOf("dogs") != -1); 

這將只返回有標籤的「草坪」和「狗」,這是所有好的視頻並罰款。

但我想要一個方法,我可以通過儘可能多的標籤,我想要的並獲得該過濾器的結果。

喜歡的東西:

function getFilteredByTags(...tags):XMLList{ 

}

如何做到這一點任何想法?

謝謝!

回答

0

我不能想出一個更好的方法,但是你的函數可以統計那裏有多少標記,然後在那個計數上運行一個switch語句,併爲標記的數量做正確的e4x。

0

未經檢驗的,但應該工作™

你的XML更改爲:

function getFilteredByTags(...tags):XMLList 
{ 
    // Start with a list of all videos 
    var foundVideos:XMLList = videoXML.video; 

    for each (tag in tags) 
    { 
     // Filter foundVideos down to those videos that match tag 
     foundVideos = foundVideos.([email protected] == tag); 
    } 

    return foundVideos; 
} 

var videoXML:XML= 
<?xml version="1.0" encoding="UTF-8"?> 
<videos> 
    <video> 
     <tag label="dogs" /> 
     <tag label="brown" /> 
     <tag label="lawns" /> 
    </video> 
    <video> 
     <tag label="dogs" /> 
     <tag label="cats" /> 
    </video> 
    <video> 
     <tag label="cats" /> 
     <tag label="lawns" /> 
    </video> 
</videos> 

功能與多個標籤返回視頻