AS3
我正在尝试基于XML文件动态加载图片。我坚持的问题是一个应该从提供的标识符返回找到的节点的函数。 如下面的代码
function getStudyById(id:String):XMLNode{
var xl:XMLList = xml.bacase.(@name==id); // xml is a global variable
return xl.children()[0]; // xl[0] does not work either
// return (xl.length()>0) ? xl[0] : null;
}
XML是这样的:
<root>
<bacase name="a" />
<bacase name="b" />
</root>
预测您的问题,一旦加载了XML,这一切都在xml加载器的COMPLETE事件中完成。
现在的问题是XMLList似乎是空的,而xml被正确填充,并且标识符肯定与其中一个节点匹配。 当我复制查询节点时,列表正确跟踪包含两个节点。所以我的猜测是,如果只有一个匹配,则不会创建XMLList,结果包含XMLNode数据类型的数据。
有人确认这个吗?如果是这样,有没有办法确保查询始终返回XMLList类型?
由于 阿图尔
答案 0 :(得分:0)
XMLNode
仅适用于旧flash.xml.XMLDocument
。如果您使用XML
或XML
,则单个节点的类型为XMLList
。
这个剪辑对我来说很好用:
var xml:XML = <root>
<bacase name="a" />
<bacase name="b" />
</root>;
var p:XMLList = xml.bacase.(@name == "a");
if (p.length() > 0) return XML(p[0]);