Использование flash для поиска значения элемента XML.(простая функция поиска) - PullRequest
1 голос
/ 12 сентября 2011

У меня возникли некоторые проблемы с получением флэш-приложения (в AS3) для поиска определенного значения элемента в XML. У меня есть следующий XML-файл.

 <clientlist>
  <pessoa>
    <id>0140</id>
    <nome>Maria Manuela</nome>
    <email>mariamanuela@gmail.com</email>
    <contacto>969876543</contacto>
  </pessoa>
  <pessoa>
    <id>0141</id>
    <nome>Maria Jose</nome>
    <email/>
    <contacto>961234567</contacto>
  </pessoa>
  <pessoa>
<clientlist>

У меня есть поле "поиск", где якобы я бы набрал имя и получил бы массив "pessoa", но у меня возникли некоторые проблемы с выполнением цикла.

Итак, представьте, что я буду искать "Мария", я хотел получить:

trace (PessoaArray [0]) =

<id>0140</id>
<nome>Maria Manuela</nome>
<email>mariamanuela@gmail.com</email>
<contacto>967060255</contacto>

trace (PessoaArray [1]) =

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

Кто-нибудь может мне помочь? Я не новичок во флэш-памяти AS3 (хотя я не совсем профессионал), но это мой первый раз, когда я возился с файлами XML.

Спасибо.

Марко Роберто.

1 Ответ

3 голосов
/ 12 сентября 2011

краткий ответ: xmlData.*.(nome == $name))

длинный ответ ...

проверил это в FLA с текстовым полем _tf и кнопкой _btn

import flash.events.MouseEvent;

var $data:XML = <clientlist>
  <pessoa>
    <id>0140</id>
    <nome>Maria Manuela</nome>
    <email>mariamanuela@gmail.com</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))

}
...