参见英文答案 >
php SimpleXML check if a child exists15个
我有以下(简化的XML):
我有以下(简化的XML):
<?xml version="1.0" encoding="UTF-8" ?> <products> <product> <artnr>xxx1</artnr> </product> </products>
以下(再次简化的PHP代码):
$xml= @simplexml_load_file($filename); foreach ($xml->product as $product) { if (!$this->validate_xml_product($product)) { continue; } } function validate_xml_product($product) { if (!property_exists('artnr',$product)) { // why does it always validate to true? } }
由于某种原因,该产品永远不会验证.
property_exists不是找出$product中是否有artnr元素的正确方法吗?
代码中的参数顺序相反.首先是对象然后是属性名:
if (!property_exists($product,'artnr')) {
而且显然这仅适用于“真实”属性.如果使用__get-Method实现该属性,则这也不起作用.