首先,我是一个php新手。我已经查看了问题和解决方案here。然而,对于我的需要,解析对各种文章的深入程度还不够。
我的 rss feed 的一小部分内容如下:
<channel>
<atom:link href="http://mywebsite.com/rss" rel="self" type="application/rss+xml" />
<title>My Web Site</title>
<description>My Feed</description>
<link>http://mywebsite.com/</link>
<image>
<url>http://mywebsite.com/views/images/banner.jpg</url>
<title>My Title</title>
<link>http://mywebsite.com/</link>
<description>Visit My Site</description>
</image>
<item>
<title>Article One</title>
<guid isPermaLink="true">http://mywebsite.com/details/e8c5106</guid>
<link>http://mywebsite.com/geturl/e8c5106</link>
<comments>http://mywebsite.com/details/e8c5106#comments</comments>
<pubDate>Wed, 09 Jan 2013 02:59:45 -0500</pubDate>
<category>Category 1</category>
<description>
<![CDATA[<div>
<img src="http://mywebsite.com/myimages/1521197-main.jpg" width="120" border="0" />
<ul><li>Poster: someone's name;</li>
<li>PostDate: Tue, 08 Jan 2013 21:49:35 -0500</li>
<li>Rating: 5</li>
<li>Summary:Lorem ipsum dolor </li></ul></div><div style="clear:both;">]]>
</description>
</item>
<item>..
我想要解析的图像链接是每个图像内部的链接Item > 描述
我的 php 文件中的代码如下:
<?php
$xml = simplexml_load_file('http://mywebsite.com/rss?t=2040&dl=1&i=1&r=ceddfb43483437b1ed08ab8a72cbc3d5');
$imgs = $xml->xpath('/item/description/img');
foreach($imgs as $image) {
echo $image->src;
}
?>
有人可以帮我弄清楚如何配置上面的 php 代码吗?
这也是一个非常新手的问题...一旦我得到结果图像网址,如何在我的 html 上连续显示图像?
非常感谢!!!
Hernando
The <img>
RSS 提要中的标签实际上并不是 XML 文档的元素,与此站点上的语法突出显示相反 - 它们只是<description>
恰好包含字符的元素<
and >
.
字符串<![CDATA[
告诉 XML 解析器从那里直到它遇到的所有内容]]>
被视为原始字符串,无论它包含什么。这对于在 XML 中嵌入 HTML 非常有用,因为 HTML 标记不一定是有效的 XML。它相当于转义整个 HTML(例如,使用htmlspecialchars
) 所以这样<img>
标签看起来像<img>
。 (我进入另一个答案的更多技术细节.)
所以从RSS中提取图像需要两个步骤:首先,获取每个图像的文本<description>
,然后,找到所有<img>
该文本中的标签。
$xml = simplexml_load_file('http://mywebsite.com/rss?t=2040&dl=1&i=1&r=ceddfb43483437b1ed08ab8a72cbc3d5');
$descriptions = $xml->xpath('//item/description');
foreach ( $descriptions as $description_node ) {
// The description may not be valid XML, so use a more forgiving HTML parser mode
$description_dom = new DOMDocument();
$description_dom->loadHTML( (string)$description_node );
// Switch back to SimpleXML for readability
$description_sxml = simplexml_import_dom( $description_dom );
// Find all images, and extract their 'src' param
$imgs = $description_sxml->xpath('//img');
foreach($imgs as $image) {
echo (string)$image['src'];
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)