如何查找节点是否不存在? 我正在使用
if($ item-> branch() - > siblings($ tagNames ['desc']) - > text())
有更好的方法吗?
我使用以下内容:
$desc1 = ( $item->branch()->siblings($tagNames['desc'])->text() ?
$item->branch()->siblings($tagNames['desc']) :
$item->branch()->siblings($tagNames['descAlternative']) ) ;
这看起来不是最有效的做事方式。
由于
答案 0 :(得分:4)
关于第一个:
当QueryPath找不到匹配项时,它的大小为0.所以你可以这样做:
if (count($item) > 0) {
// do whatever with $item
}
所以对于第二个例子,你可以这样做:
if (count($item->branch()->siblings($tagNames['desc']))) {
$item->branch()->siblings($tagNames['desc']);
$item->branch()->siblings($tagNames['descAlternative']) ) ;
}
但还有另一种方法:你也可以同时传递两个选择器。
$item->branch()->siblings('desc, descAlternative')->text();
这将选择两者。但是,text()
只会返回第一个匹配项的文本。所以它具有做OR的效果。