所以我使用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
答案 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>