我正在从一个API中解析一个xml文件,我在php中将其转换为DOMDocument。这很好,但我遇到的一个问题是当我这样做时:
$feeditem->getElementsByTagName('extra');
作为forall语句的一部分,并且我在forall条件中迭代的一个feeditems中不存在extra元素,然后我收到错误。
我试过了:
if (!empty($feeditem->getElementsByTagName('extra'))){
$extratag = $feeditem->getElementsByTagName('extra');
$extraname = $extratag->item(0)->getAttribute('name');
echo $extraname
}
但是我收到了错误
getAttribute() on a non-object
注意:当每个feeditem中包含'extra'元素时,代码运行完美。只是当其中一个Feed项不包含'extra'元素时,我才会收到错误。
答案 0 :(得分:2)
尝试使用DOMNodeList
的length
属性:
$nodes = $feeditem->getElementsByTagName('extra');
if ($nodes->length > 0) {
$extraname = $extratag->item(0)->getAttribute('name');
}