使用AS3检查XML中是否存在项目

时间:2015-06-11 12:41:54

标签: xml actionscript-3 actionscript find nodes

所以我使用AS3提取这些XML数据并将其存储为myXML:

for (var i: Number = 1; i < 3; i++) {
    if (myXML.Questions.(@id == i).length() > 0) {
        trace("FOUND")
    } else {
        trace("NOT FOUND");
    }
}

现在我想检查是否在该XML中找到了id。我目前正在使用它,但它始终跟踪“未找到” -

Exception.Message

3 个答案:

答案 0 :(得分:2)

没有必要的循环。 Vesper解决方案可行,但理论上非常昂贵且缓慢。 PO也非常接近,但他使用@id就像id元素是属性一样。解决方案很简单:

$env = $app->detectEnvironment(function(){
     return $_ENV['APP_ENV'];
});

您要么获得了有效的XMLList,要么就是没有。但这就是全部。

也不要使用该代码逻辑:

Undefined index: APP_ENV

它会创建一个不必要的额外xml搜索,因为如果为true,则必须调用&#34; xml.Questions。(id == 1)&#34;再次获得清单。而是先调用它并存储结果,然后根据需要检查长度。

答案 1 :(得分:0)

使用此XML,您的Questions应该是内部数组,也就是说,trace(myXML.Questions.length())应该返回多于1,因此您要遍历myXML.Questions并检查节点的{{1}等于你的id

i

答案 2 :(得分:0)

我一直在使用AS3 / XML,但我想如果您想找到任何 ID(无论数字是多少),您可以尝试:

myXML.Questions.id.length() > 0

至于为什么它总是在你的代码中追溯到未找到它,因为@符号表示属性,而不是元素。所以它试图找到:

<Questions id=1>
    ...
</Questions>