2012-03-31 44 views
0

鑑於以下XML代碼:如何在flash AS2中通過屬性名/值查找特定的XML數據?

<set name="thumbsBooks"> 
    <set name="pdf"> 
     <thumb>Data I want to access</thumb> 
     <thumb>Data I want to access</thumb> 
    </set> 
    <set name="printed"> 
     <thumb>Data I don't want to access</thumb> 
     <thumb>Data I don't want to access</thumb> 
    </set> 
<set> 

我希望能夠得到包含在使用作爲選擇父標籤的「名稱」屬性值的「拇指」標記的數據,像你會在jQuery中做:$('set [name =「pdf」]')。find('thumb');

在Action Script 2中有沒有像這樣的方法(不能使用AS3)?

回答

0

只是意識到我已經改變你的父標籤設置。

var myXML:XML = new XML(
<sets name="thumbsBooks"> 
    <set name="pdf"> 
     <thumb>Data I want to access</thumb> 
     <thumb>Data I want to access</thumb> 
    </set> 
    <set name="printed"> 
     <thumb>Data I don't want to access</thumb> 
     <thumb>Data I don't want to access</thumb> 
    </set> 
</sets>); 



for each (var mySet:XML in myXML.set) { 

     if([email protected] == "pdf") { 
     // do your stuff 
     } 

} 
0

AS2曾經有一個XPath實現,甚至兩個iirc。他們兩個都超出了任何可以想象的理由,所以我不建議你使用它們,但它會很簡單地解決這個問題和類似的問題。

http://osflash.org/xpath4as2這是我能找到的東西。在mx。*軟件包中也有一些東西,但它的質量很差......

如果您僅限於播放器版本而不是特定語言版本,我建議您查看HaXe。它具有用於處理XML的一些很好的API,然後在AS2中使用常規的DOM API。

我曾經有一個XML包裝類來減少與XML有關的操作的冗長,但是我在這麼多年沒有碰到AS2,我認爲這個類現在已經不可逆轉地丟失了......但是,如果你的例子恰好是真實生活的例子 - 爲什麼不使用DOM?除非你的項目中真的有XML處理過載,否則這對我來說似乎沒什麼用處......

相關問題