Оператор e4x конфликтует с локальной переменной? - PullRequest
0 голосов
/ 18 мая 2010

Где-то в коде у меня есть переменная decalred:

[Bindable]
var nameWin:String = "";

после этого у меня есть заявление e4x

podContent.xml_m = xml_m.item.(nameWin=="necessary name");

, который должен сравнивать namewin элемента с «необходимым именем» и возвращать только те элементы, имя которыхWin совпадает с «необходимым именем».

xml_m.item:

  <item>
    <nameWin>necessary name</nameWin>
    <nameCol>Брутто-премия начисленная</nameCol>
    <date>2009 Май</date>
    <summa>259267.7976</summa>
  </item>
  <item>
    <nameWin>unnecessary name</nameWin>
    <nameCol>Брутто-премия начисленная</nameCol>
    <date>2010 Апрель</date>
    <summa>104.3254</summa>
  </item>
  <item>
    <nameWin>necessary name</nameWin>
    <nameCol>Брутто-премия начисленная</nameCol>
    <date>2010 Май</date>
    <summa>21.5174</summa>
  </item>

если я использую в выражении xml-child, отличном от nameWin (итог, например), это работает хорошо. Но с помощью nameWin e4x сравнивает локальную переменную nameWin (которая меня сейчас не интересует) с «необходимым именем», а не сравнивает nameWin элемента с «необходимым именем».

Есть идеи? Версии библиотек могут быть причиной?

Ответы [ 2 ]

1 голос
/ 19 мая 2010

Попробуйте это:

podContent.xml_m = xml_m.item.(elements("nameWin")[0]=="necessary name");
0 голосов
/ 18 мая 2010

E4X работает так, как задумано в этом случае, поскольку ЛЮБОЙ оператор ActionScript может быть оценен в этих скобках. Учитывая вашу ситуацию, вы можете либо переименовать вашу переменную, либо использовать метод атрибута, который, я думаю, выглядит следующим образом:

podContent.xml_m = xml_m.item.attribute("nameWin")=="necessary name";

Возможно, я немного ошибаюсь с моим синтаксисом, но это довольно близко к тому, что вы хотите.

...