Robert Fidler <robert(_dot_)fidler(_at_)queensu(_dot_)ca> writes:
Does any one know how I can merge multiple RSS feeds into one feed? I
have this code, but when I view the feed.xml in IE, it does not have any
of the XML formating in it, just plain text output all strong out. And
RSSOwl does not even read it.
feed.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="merge-rss.xsl"?>
<feeds>
<link href="http://digg.com/rss/index.xml"/>
<link href="http://www.osnews.com/files/recent.xml"/>
</feeds>
merge-rss.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="yes" omit-xml-declaration="no" media-type="text/xml" />
<xsl:template match="/">
<rss version="2.0">
<channel>
<title>My Title</title>
<description>My Description</description>
<language>en-us</language>
<link>http://mysite/rss</link>
<xsl:for-each select="feeds/link/@href">
<xsl:copy-of select="document(.)/rss/channel/item"/>
</xsl:for-each>
</channel>
</rss>
</xsl:template>
</xsl:stylesheet>
Something like:
<xsl:for-each select="feeds/link">
<xsl:variable name="source" select="document(@href)"/>
<xsl:copy-of select="$source//item"/>
</xsl:for-each>
Works for me.
Note that this is essentially what http://www.thefeedstar.net
does. This is my RSS/ATOM aggregator. It's simple but not as simple as
a single sylesheet; you can see it at:
http://www.thefeedstar.net
you do have to register for it first.
Nic Ferrier
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--