$mival
04.07.2009, 19:12
Привет.
В общем не работает следующее выражение внутри switch -> case
var list2:XMLList = xml..*.(attribute('name') == mode);
list2 остается null при том что есть удовлетворяющие выражению тэги в XML.
Все подробно в примере.
Интересно, почему так?
upd: выложу все-таки код для наглядности:
package
{
import flash.display.MovieClip;
public class Test extends MovieClip
{
public function Test()
{
var mode:String = "seven";
var xml:XML =
<root>
<node name = "node one">
<sub_node name = "node two"/>
<sub_node name = "node three"/>
<sub_node name = "node four">
<b_node a="atr_a" name = "node five"/>
</sub_node>
</node>
<node name = "node six">
<sub_node a = "atr_a" name = 'seven'/>
</node>
</root>
var list:XMLList = xml..*.(attribute('name') == mode);
trace(list.toXMLString());
// внутри switch происходят интересные вещи, не срабатывает запрос к XML в варианте code 1 и code 2 ниже
// в code 3 всё работает нормально
// выше до switch такого глюка нет
switch (mode)
{
case "seven":
// code 1
var list2:XMLList = xml..*.(attribute('name') == mode); // output 'null'
//
// code 2
// var list2:XMLList = new XMLList(xml..*.(attribute('name') == mode));
//
// code 3
//var list2:XMLList;
//list2 = xml..*.(attribute('name') == mode);
//
if (list2) trace(list2.toXMLString());
break;
}
}
}
}
В общем не работает следующее выражение внутри switch -> case
var list2:XMLList = xml..*.(attribute('name') == mode);
list2 остается null при том что есть удовлетворяющие выражению тэги в XML.
Все подробно в примере.
Интересно, почему так?
upd: выложу все-таки код для наглядности:
package
{
import flash.display.MovieClip;
public class Test extends MovieClip
{
public function Test()
{
var mode:String = "seven";
var xml:XML =
<root>
<node name = "node one">
<sub_node name = "node two"/>
<sub_node name = "node three"/>
<sub_node name = "node four">
<b_node a="atr_a" name = "node five"/>
</sub_node>
</node>
<node name = "node six">
<sub_node a = "atr_a" name = 'seven'/>
</node>
</root>
var list:XMLList = xml..*.(attribute('name') == mode);
trace(list.toXMLString());
// внутри switch происходят интересные вещи, не срабатывает запрос к XML в варианте code 1 и code 2 ниже
// в code 3 всё работает нормально
// выше до switch такого глюка нет
switch (mode)
{
case "seven":
// code 1
var list2:XMLList = xml..*.(attribute('name') == mode); // output 'null'
//
// code 2
// var list2:XMLList = new XMLList(xml..*.(attribute('name') == mode));
//
// code 3
//var list2:XMLList;
//list2 = xml..*.(attribute('name') == mode);
//
if (list2) trace(list2.toXMLString());
break;
}
}
}
}