修复“尝试读取 null 上的属性“nodeValue””

问题描述 投票:0回答:1

我使用以下方法从提要列表中获取内容(在下面的示例中只有 2 个):

$urlarray = array(
array( 'name' => 'feed1', 'url' => 'https://example.com/feed1/rss'),
array( 'name' => 'feed2', 'url' => 'https://example.com/feed2/rss'),
);

然后使用以下命令提取条目详细信息(标题、描述):

foreach ( $urlarray as $url ) {
  $rss->load( $url['url'] );
  foreach ( $rss->getElementsByTagName( 'item' ) as $node ) {
  $item = array(
    'site'  => $url['name'],
    'title' => $node->getElementsByTagName( 'title' )->item( 0 )->nodeValue,
    'desc'  => $node->getElementsByTagName( 'description' )->item( 0 )->nodeValue,
    'link'  => $node->getElementsByTagName( 'link' )->item( 0 )->nodeValue,
    'date'  => $node->getElementsByTagName( 'pubDate' )->item( 0 )->nodeValue,   
    'category'  => $node->getElementsByTagName( 'category' )->item( 0 )->nodeValue, //this is the issue
  );
  array_push( $feed, $item );
  }
}

但我收到警告

尝试读取 null 上的属性“nodeValue”

关于类别行,可能是因为某些提要条目没有类别。

这只是一个警告,但我认为最好修复它。我有什么办法可以摆脱这个问题,比如先检查节点是否存在?

php dom nodes
1个回答
0
投票

[![谢谢 Copilot 和 Microsoft、ChatGPT 以及网络上的任何其他 AI。快速、正确、礼貌 + 奖励 = 没有废话或跑题的聊天][1]][1]

谢谢 Copilot 和 Microsoft ChatGPT(可能还有网络上的任何其他 AI)。快速、正确、礼貌 + 奖励 = 没有废话或跑题的聊天 [1]:https://i.sstatic.net/AJwKvAb8.png

© www.soinside.com 2019 - 2024. All rights reserved.