参见英文答案 >
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实现该属性,则这也不起作用.