如何从 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")
我正在尝试使用 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")