xpath是否可以在foreach中获取动态值;
体育我尝试使用下面的代码,我得到: 试图获取非对象错误的属性
foreach ($srcov as $src) {
$qCoverXml = $coverXml->xpath('//cover/code[.= "'. $srcC->Code .'" ]/parent::*');
echo $qCoverXml->name;
}
我做错了什么;谢谢
好吧,引用 xpath() 方法的 simplexml 文档:
返回 SimpleXMLElement 对象的数组,如果出现错误,则返回 FALSE。
所以,有两件事你做错了。
- 您应该检查错误情况
- 您应该将结果视为数组
它将看起来像这样:
foreach ($srcov as $src) {
$qCoverXml = $coverXml->xpath('//cover/code[.= "'. $srcC->Code .'" ]/parent::*');
if (false === $qCoverXml) {
echo "ERROR: request for {$srcC->Code} failed somehow'n";
continue;
}
if (count($qCoverXml) == 0) {
echo "ERROR: request for {$srcC->Code} didn't return any elements'n";
continue;
}
echo $qCoverXml[0]->name."'n";
}