跳到下一个循环(XML 在 while 循环内解析)

Skip to next loop (XML parsing inside while loop)

我正在使用以下代码在 while 循环中解析 RSS 提要:

while($row = mysqli_fetch_array($result)) {

$symbol=$row['joinsymbol'];

$xml=('http://finance.yahoo.com/rss/headline?s=' . $symbol);

$xmlDoc = new DOMDocument();

$xmlDoc->load($xml);

$x=$xmlDoc->getElementsByTagName('item');

  $title=$x->item(0)->getElementsByTagName('title')
  ->item(0)->childNodes->item(0)->nodeValue;
  $link=$x->item(0)->getElementsByTagName('link')
  ->item(0)->childNodes->item(0)->nodeValue;
  $item_desc=$x->item(0)->getElementsByTagName('description')
  ->item(0)->childNodes->item(0)->nodeValue;
  $pubDate=$x->item(0)->getElementsByTagName('pubDate')
  ->item(0)->childNodes->item(0)->nodeValue;

echo 'hello' . '<br>';

}

问题是它会停止循环以防 $symbol select 错误(因此找不到 XML 页面)。如果当前循环有这样的问题,如何强制它跳到下一个循环?

在此先感谢您的帮助!

在我的系统上用 PHP 7.0 和 PHP 7.1 测试了这个,但我不明白为什么它不能在 PHP 5.x 上运行:

$x = $xmlDoc->getElementsByTagName('item');

if ($x->length < 1) {
    // We found no items, continue to the next iteration
    continue;
}

// the rest of your script...

它停止循环的原因是因为 returned 无效提要时在 $x->item(0)->getElementsByTagName('title') 上抛出错误,因为语句 $x->item(0) 会 return null 而不是对象。