2011-09-11 100 views
1

我有一些問題得到一個Flash應用程序(在AS3中)在xml中搜索特定的元素值。我有以下的XML文件。使用flash來搜索XML元素值。 (一個簡單的搜索功能)

<clientlist> 
    <pessoa> 
    <id>0140</id> 
    <nome>Maria Manuela</nome> 
    <email>[email protected]</email> 
    <contacto>969876543</contacto> 
    </pessoa> 
    <pessoa> 
    <id>0141</id> 
    <nome>Maria Jose</nome> 
    <email/> 
    <contacto>961234567</contacto> 
    </pessoa> 
    <pessoa> 
<clientlist> 

我有一個「搜索」領域,其中,按說,我會鍵入一個名稱和將得到的「佩索阿」 S數組,但我有一些問題,使循環發生。

所以,想象我會尋找 「瑪麗亞」,我希望得到一個:

跟蹤(PessoaArray [0])=

<id>0140</id> 
<nome>Maria Manuela</nome> 
<email>[email protected]</email> 
<contacto>967060255</contacto> 

跟蹤(PessoaArray [1])=

<id>0141</id> 
<nome>Maria Jose</nome> 
<email/> 
<contacto>968496127</contacto> 

任何人都可以幫我嗎?我對閃存AS3並不陌生(即使我不是專業版),但它是我第一次搞亂XML文件。

謝謝。

Marco Roberto。

回答

3

簡短的回答:xmlData.*.(nome == $name))

長答案...

在FLA用文本框_tf和按鈕_btn

import flash.events.MouseEvent; 

var $data:XML = <clientlist> 
    <pessoa> 
    <id>0140</id> 
    <nome>Maria Manuela</nome> 
    <email>[email protected]</email> 
    <contacto>969876543</contacto> 
    </pessoa> 
    <pessoa> 
    <id>0141</id> 
    <nome>Maria Jose</nome> 
    <email/> 
    <contacto>961234567</contacto> 
    </pessoa> 
</clientlist>; 

_btn.addEventListener(MouseEvent.CLICK,onClick); 

function onClick($e:MouseEvent):void{ 
    trace($data.*.(nome == _tf.text)) 

} 
+0

測試這我知道有些人喜歡用美元簽名作爲as3應用程序中函數參數的前綴,但$ data? – Taurayi

+0

呀,'$ data'有點多。我已經在函數內的var名稱前面使用了$,使得我很容易找出變量的範圍。但這是我扔在一起的一個簡單例子,所以我沒有太注意它。也許有足夠的降價,我會解決它。 – Daniel

+0

'$ prefix'是可原諒的,'_prefix'是醜陋但常見的,但只要人們避免使用可怕的雙眼下劃線:'__killMe',一切都會好起來。我的天啊。這是最糟糕的。 – TheDarkIn1978