php将bing rss提要标题整合到一个变量中

php将bing rss提要标题整合到一个变量中,php,rss,foreach,simplexml,Php,Rss,Foreach,Simplexml,我正在尝试使用下面的代码获取bing rss新闻提要,从这些数据中获取所有标题到一个数组,然后将它们一起内爆,这样我就有了一个变量,所有单词都在一个字符串中,这样我就可以用另一段代码从中创建一个单词云。到目前为止,它获得了rss提要和打印(doc);如果取消注释,它将显示简单的xml。然而,我的foreach循环在数组中获取标题似乎不起作用,我看不出错误在哪里?提前谢谢 $ch = curl_init("http://api.bing.com/rss.aspx?Source=News&M

我正在尝试使用下面的代码获取bing rss新闻提要,从这些数据中获取所有标题到一个数组,然后将它们一起内爆,这样我就有了一个变量,所有单词都在一个字符串中,这样我就可以用另一段代码从中创建一个单词云。到目前为止,它获得了rss提要和打印(doc);如果取消注释,它将显示简单的xml。然而,我的foreach循环在数组中获取标题似乎不起作用,我看不出错误在哪里?提前谢谢

$ch = curl_init("http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);

$doc = new SimpleXMLElement($data);
//print_r($doc);

$vals = array();
foreach ($doc->entry as $entry) {
$vals[] = (string) $entry->title;
}

//join content nodes together for the word cloud
$vals = implode(' ', $vals);

echo($vals);
标题位于rss/channel/item/title,而不是代码查找它们的地方,位于rss/entry/title。除此之外,您获取值的方法很好

$rss = simplexml_load_file('http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk');

$titles = array();
foreach ($rss->channel->item as $item) {
    $titles[] = (string) $item->title;
}

//join content nodes together for the word cloud
$words = implode(' ', $titles);

echo $words;
使用XPath获取标题的快速替代方法是:

$rss  = simplexml_load_file('http://api.bing.com/rss.aspx?Source=News&Market=en-GB&Version=2.0&Query=web+design+uk');
$words = implode(' ', $rss->xpath('channel/item/title'));
echo $words;