在 php 中使用 rss 时如何访问元素的属性
How to access the attribute of a element when using rss in php
我正在使用 RSS 提要来显示一些新闻。但问题是我使用 bootstrap 并且 RSS 提要发送了一张我不知道如何访问的图像,所以我可以在上面输入 class="img-responsive"
。现在图像适合屏幕..
php 当我从 RSS 提要中收集元素时的代码:
<?php
$q=$_GET["q"];
$xml=("https://www.gamereactor.se/rss/rss.php?texttype=4");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
echo("<br>");
echo($channel_desc."</p>");
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++) {$item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
echo ("<p><a href='".$item_link."'>".$item_title."</a>");
echo ("<br>");
echo ($item_desc);
echo ("<img class=img-responsive>".$item_desc."<img></p>");} //where im trying to access the image..
?>
这是来自 RSS 提要的 xml 的样子:
<title>Nya Need for Speed kommer att kräva internetuppkoppling</title>
<description><img src="http://www.gamereactor.dk/media/55/_1455534.jpg"><p>Svenska Ghost Games pillar för fullt med kommande Need for Speed som ska släppas till PC, Playstation 4 och Xbox One den 3:e november. Förutom att vi tidigare rapporterat...</p></description>
问题出在您取回的数据上。当您查看 XML 时,您将看到:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media= "http://search.yahoo.com/mrss/">
<channel>
<atom:link href="http://www.gamereactor.se/rss/rss.php?texttype=4" rel="self" type="application/rss+xml" />
<title>Gamereactor Sverige Nyheter</title>
<link>http://www.gamereactor.se</link>
<description>Dagsfärska nyheter, tunga artiklar, intervjuer, personliga bloggar, intressanta forumdiskussioner och rättvisa recensioner. Gamereactor är Sveriges största speltidning- och spelcommunity</description>
<webMaster>kenneth.gant@gamereactor.dk (Kenneth Gant)</webMaster>
<item>
<link>http://www.gamereactor.se/nyheter/244164/Alla+f%F6rhandsbokningsbonusar+till+Arkham+Knight/?rs=rss</link>
<guid>http://www.gamereactor.se/nyheter/244164/?rs=rss</guid>
<title>Alla förhandsbokningsbonusar till Arkham Knight</title>
<description><img src="http://www.gamereactor.dk/media/28/framtidensbatman_1102834.jpg"><p>En flitig Reddit-besökare har tagit på sig att lista var och till vilket format du bör reservera Batman: Arkham Knight för att få den förhandsbokningsbonus just du vill...</p></description>
<author>jonas@gamereactor.se (Jonas Mäki)</author>
<pubDate>Fri, 29 May 2015 19:44:54 +0200</pubDate>
</item>
所以 IMG
标签在描述和编码中。所以下一行将包含此详细信息:
$item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
要在您的页面中将其用作 HTML,我们需要执行以下操作:
$item_desc=html_entity_decode($x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue);
$item_desc
现在将包含:<img src="http://www.gamereactor.dk/media/28/framtidensbatman_1102834.jpg"><p>En flitig Reddit-besökare har tagit på sig att lista var och till vilket format du bör reservera Batman: Arkham Knight för att få den förhandsbokningsbonus just du vill...</p>
<?php
$q=$_GET["q"];
$xml=("https://www.gamereactor.se/rss/rss.php?texttype=4");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
echo("<br>");
echo($channel_desc."</p>");
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++){
$item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$item_desc=html_entity_decode($x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue);
echo ("<p><a href='".$item_link."'>".$item_title."</a>");
echo ("<br>");
echo ($item_desc);
}
?>
我正在使用 RSS 提要来显示一些新闻。但问题是我使用 bootstrap 并且 RSS 提要发送了一张我不知道如何访问的图像,所以我可以在上面输入 class="img-responsive"
。现在图像适合屏幕..
php 当我从 RSS 提要中收集元素时的代码:
<?php
$q=$_GET["q"];
$xml=("https://www.gamereactor.se/rss/rss.php?texttype=4");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
echo("<br>");
echo($channel_desc."</p>");
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++) {$item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
echo ("<p><a href='".$item_link."'>".$item_title."</a>");
echo ("<br>");
echo ($item_desc);
echo ("<img class=img-responsive>".$item_desc."<img></p>");} //where im trying to access the image..
?>
这是来自 RSS 提要的 xml 的样子:
<title>Nya Need for Speed kommer att kräva internetuppkoppling</title>
<description><img src="http://www.gamereactor.dk/media/55/_1455534.jpg"><p>Svenska Ghost Games pillar för fullt med kommande Need for Speed som ska släppas till PC, Playstation 4 och Xbox One den 3:e november. Förutom att vi tidigare rapporterat...</p></description>
问题出在您取回的数据上。当您查看 XML 时,您将看到:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media= "http://search.yahoo.com/mrss/">
<channel>
<atom:link href="http://www.gamereactor.se/rss/rss.php?texttype=4" rel="self" type="application/rss+xml" />
<title>Gamereactor Sverige Nyheter</title>
<link>http://www.gamereactor.se</link>
<description>Dagsfärska nyheter, tunga artiklar, intervjuer, personliga bloggar, intressanta forumdiskussioner och rättvisa recensioner. Gamereactor är Sveriges största speltidning- och spelcommunity</description>
<webMaster>kenneth.gant@gamereactor.dk (Kenneth Gant)</webMaster>
<item>
<link>http://www.gamereactor.se/nyheter/244164/Alla+f%F6rhandsbokningsbonusar+till+Arkham+Knight/?rs=rss</link>
<guid>http://www.gamereactor.se/nyheter/244164/?rs=rss</guid>
<title>Alla förhandsbokningsbonusar till Arkham Knight</title>
<description><img src="http://www.gamereactor.dk/media/28/framtidensbatman_1102834.jpg"><p>En flitig Reddit-besökare har tagit på sig att lista var och till vilket format du bör reservera Batman: Arkham Knight för att få den förhandsbokningsbonus just du vill...</p></description>
<author>jonas@gamereactor.se (Jonas Mäki)</author>
<pubDate>Fri, 29 May 2015 19:44:54 +0200</pubDate>
</item>
所以 IMG
标签在描述和编码中。所以下一行将包含此详细信息:
$item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
要在您的页面中将其用作 HTML,我们需要执行以下操作:
$item_desc=html_entity_decode($x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue);
$item_desc
现在将包含:<img src="http://www.gamereactor.dk/media/28/framtidensbatman_1102834.jpg"><p>En flitig Reddit-besökare har tagit på sig att lista var och till vilket format du bör reservera Batman: Arkham Knight för att få den förhandsbokningsbonus just du vill...</p>
<?php
$q=$_GET["q"];
$xml=("https://www.gamereactor.se/rss/rss.php?texttype=4");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
echo("<br>");
echo($channel_desc."</p>");
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++){
$item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$item_desc=html_entity_decode($x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue);
echo ("<p><a href='".$item_link."'>".$item_title."</a>");
echo ("<br>");
echo ($item_desc);
}
?>