e4x语句与局部变量冲突?

时间:2010-05-18 13:16:10

标签: xml flex e4x

代码中的某处我有十分变量:

[Bindable]
var nameWin:String = "";

之后我有一个e4x声明

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

应将item的namewin与“必要名称”进行比较,并仅返回nameWin与“必需名称”匹配的项目。

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>

如果我在nameWin的语句xml-child distinct中使用(例如,摘要,那么它)效果很好。 但是使用nameWin,e4x将本地变量nameWin(此时对我不感兴趣)与“必需名称”进行比较,而不是比较项目名称Win与“必需名称”。

有什么想法吗?库的版本可能是理由吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

podContent.xml_m = xml_m.item.(elements("nameWin")[0]=="necessary name");

答案 1 :(得分:0)

E4X在这种情况下按照设计工作,因为可以在这些括号中评估任何actionscript语句。考虑到你的情况,你可以重命名你的变量或使用属性方法,我认为这样:

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

我的语法可能有些偏差,但这非常接近你想要的。