如何从 PHP 中的 RSS 提要获取自定义标签

How to fetch custom tags from RSS feed in PHP

我正在尝试使用 Google Trends 的新闻数据作为我正在进行的项目的概念证明。我找到了以下用于解析来自 RSS 提要的数据的代码,并查看了几个在线获取自定义标签的示例,但 none 似乎对我有用。我似乎无法使用以下代码解析来自 RSS 提要的 "ht:news_item_url" 标签;

$domOBJ = new DOMDocument();
$domOBJ->load("https://trends.google.com.tr/trends/trendingsearches/daily/rss?geo=TR");//XML page URL

$content = $domOBJ->getElementsByTagName("item");

foreach( $content as $data )
{
    $title = $data->getElementsByTagName("title")->item(0)->nodeValue;
    $link = $data->getElementsByTagName("link")->item(0)->nodeValue;
    $description = $data->getElementsByTagName("description")->item(0)->nodeValue;
    $newsLink = $data->getElementsByTagNameNS("https://trends.google.com.tr/trends/trendingsearches/daily/rss?geo=TR", "ht:news_item_url")->item(0)->nodeValue;
    echo "$newsLink";

}

我正在尝试解析的 RSS 可以在这里找到:https://trends.google.com.tr/trends/trendingsearches/daily/rss?geo=TR

您对 getElementsByTagNameNS() 的调用有几个错误。首先是您对命名空间 URI 使用了错误的值,您使用的是源的 URL 而不是命名空间 URI,您应该使用来自...[的 xmlns:ht 的值=15=]

<rss xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:ht="https://trends.google.com.tr/trends/trendingsearches/daily" 
    version="2.0">

第二部分是你需要使用你之后的元素的本地名称,这是没有命名空间前缀的元素名称,所以只是news_item_url

最终结果应该是……

$newsLink = $data->getElementsByTagNameNS("https://trends.google.com.tr/trends/trendingsearches/daily"
, "news_item_url")