0

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 类型?

谢谢阿图尔

4

1 回答 1

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]);
于 2011-05-16T15:02:36.463 回答