在foreach中插入xpath的动态变量

时间:2014-11-12 15:31:50

标签: php xml simplexml

xpath是否可以在foreach中获取动态值;;

体育专业 我尝试使用波纹管代码,我得到:试图获得非对象错误的属性

foreach ($srcov as $src) {
   $qCoverXml = $coverXml->xpath('//cover/code[.= "'.  $srcC->Code  .'" ]/parent::*');
   echo  $qCoverXml->name;
}

我做错了什么; 感谢

1 个答案:

答案 0 :(得分:0)

好吧,引用xpath() method的simplexml文档:

  

返回SimpleXMLElement对象的数组,如果发生错误,则返回FALSE。

所以,你做错了两件事。

  1. 你应该检查错误案例
  2. 您应该将结果视为数组
  3. 它看起来像这样:

    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";
    }