mkrisch Posted July 30, 2010 Share Posted July 30, 2010 Hello, Any help would be great. I'm filtering and rss feed and to create a new feed with some <item>'s removed. Here is a snippet from the source file. <item> <title><h1>Indians, Pacers and Colts attendance is only part of story</h1></title> <link>http://www.newsweek.com/the-score/2010/07/29/indians-pacers-and-colts-draw-similar-sized-crowds/PARAMS/post/21385</link> <description></description> </item> <item> <title><h1>Declining attendance forcing Speedway to make changes</h1></title> <link>http://www.newsweek.com/declining-attendance-forcing-speedway-to-make-changes/PARAMS/article/21369</link> <description></description> </item> <item> <title><h1>Three issues that could derail Indy's 2012 Super Bowl</h1></title> <link>http://www.newsweek.com/the-score/2010/07/27/three-issues-that-could-derail-indys-2012-super-bowl/PARAMS/post/21341</link> <description></description> </item> I'm wanting to use the link tag to detect the item that need to be removed for the new rss feed. All <item>with <link> that contain http://www.newsweek.com/the-score/ as the beginning of the link need to be filtered out. Here is my code so far. <?php echo '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:media = "http://search.yahoo.com/mrss"> <channel> <title>CLE Calendar</title> <description>CLE Calendar</description> <language>en-us</language> <pubDate>June 14, 2010</pubDate> <lastBuildDate>June 14, 2010</lastBuildDate> <ttl>15</ttl>'; ?> <?php $rss = new SimpleXMLElement('http://www.newsweek.com/mobile-app/rss/feed?rssId=18&premium=false', null, true); ?> <?php foreach ($rss->channel->item as $items): ?> <item> <title><?php echo '<h1>' . $items->title . '</h1>'; ?></title> <link><?php echo $items->link; ?></link> </item> <?php endforeach; ?> </channel> </rss> Thanks in advance, MK Link to comment https://forums.phpfreaks.com/topic/209372-parsing-xml-and-removing-parent-if-link-string/ Share on other sites More sharing options...
wildteen88 Posted July 30, 2010 Share Posted July 30, 2010 Change <?php foreach ($rss->channel->item as $items): ?> To <?php foreach ($rss->channel->item as $items): // skip entry if link begins with http://www.newsweek.com/the-score if(substr($items->link, 0, 33) == 'http://www.newsweek.com/the-score') continue; ?> Link to comment https://forums.phpfreaks.com/topic/209372-parsing-xml-and-removing-parent-if-link-string/#findComment-1093248 Share on other sites More sharing options...
mkrisch Posted July 30, 2010 Author Share Posted July 30, 2010 Thanks for the quick reply. Would you have a look and tell me where I went wrong. The <item> is still there after code modification. <?php echo '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:media = "http://search.yahoo.com/mrss"> <channel> <title>Sports Business</title> <description>Sports Business</description> <language>en-us</language> <pubDate>June 14, 2010</pubDate> <lastBuildDate>June 14, 2010</lastBuildDate> <ttl>15</ttl>'; ?> <?php $rss = new SimpleXMLElement('http://www.ibj.com/mobile-app/rss/feed?rssId=18&premium=false', null, true); ?> <?php foreach ($rss->channel->item as $items): // skip entry if link begins with http://www.newsweek.com/the-score if(substr($items->link, 0, 33) == 'http://www.ibj.com/the-score') continue; ?> <item> <title><?php echo '<h1>' . $items->title . '</h1>'; ?></title> <link><?php echo $items->link; ?></link> <description><?php //echo $items->description; ?></description> </item> <?php endforeach; ?> </channel> </rss> Link to comment https://forums.phpfreaks.com/topic/209372-parsing-xml-and-removing-parent-if-link-string/#findComment-1093269 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.