我在XML数据从API使用PHP一个SimpleXMLElement并通过元件迭代如下拉动:比较作为不真不伪PHP值
$xml = new SimpleXMLElement (file_get_contents ($api_url));
foreach ($xml->element as $element) {
print $element->name;
}
使用这种代码,返回12的元素名称(哪个是对的)。
但是,当我遍历这些元素时,我想跳过任何已完成并继续处理不完整的元素。
从API返回的XML的格式是这样的:
<element>
<name>Alpha</name>
<completed>true</completed>
</element>
--or--
<element>
<name>Beta</name>
<completed>false</completed>
</element>
如果我加一个“如果完成,则打破”语句的foreach循环绕过完成的元素中,它仅处理1元(应该有7个):
foreach ($xml->element as $element) {
if ($element->completed == 'true')
break;
/* continue processing incomplete elements */
}
如果我更改了代码以绕过不完整的元素,它会正确返回5个不完整的元素名称。
if ($element->completed == 'false')
break;
它好像其它6种元素被认为既是“真”与“假”,因为它们是在上述两种情况下跳过。
我也试过其他比较,但没有一个返回7个不完整的元素。
=== 'true' (returns 12 elements)
=== 'false' (returns 12 elements)
== true (returns 0 elements)
== false (returns 12 elements)
=== true (returns 12 elements)
=== false (returns 12 elements)
必须有一些我忽略 - 任何指导,你可以给予赞赏。
我想你想'continue'而不是'break',对不对? – smarx
如果我回应'$ element-> completed',我得到7x'false'和5x'true' –