I'm creating an RSS feed for my Umbraco site but I'm having a problem here. I have several Doc Types, but Iwant only 3 of them to show up in the RSS Feeds, all the rest should be ignored. How can I achieve that? Here's the code I have right now:
try filtering your DocTypes before applying the template like this:
<xsl:apply-templatesselect="$rootTextpageNode//node [string(data [@alias='umbracoNaviHide']) != '1' and (@nodeTypeAlias='YOURDOCTYPE1' or @nodeTypeAlias='YOURDOCTYPE2' or @nodeTypeAlias='YOURDOCTYPE3') ]">
I moved my project to a staging environment and my RSS Feeds stopped working. The generated XML is different for the same XSLT. Here's what I get when I view the source of the feed:
RSS Feeds
Hello,
I'm creating an RSS feed for my Umbraco site but I'm having a problem here. I have several Doc Types, but Iwant only 3 of them to show up in the RSS Feeds, all the rest should be ignored. How can I achieve that? Here's the code I have right now:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rssdatehelper="urn:rssdatehelper" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:Designit.VideoEmbed="urn:Designit.VideoEmbed" exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets Designit.VideoEmbed "> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:param name="currentPage"/> <!-- Update these variables to modify the feed --> <xsl:variable name="RSSNoItems" select="string('50')"/> <xsl:variable name="RSSTitle" select="RSSTitle"/> <xsl:variable name="SiteURL" select="SiteURL"/> <xsl:variable name="RSSDescription" select="RSSDescription"/> <xsl:variable name="rootTextpageNode" select="$currentPage/ancestor-or-self::node [@level = 1 and @nodeTypeAlias = 'Homepage']" /> <!-- This gets all news and events and orders by updateDate to use for the pubDate in RSS feed --> <xsl:variable name="pubDate"> <xsl:for-each select="$rootTextpageNode//node"> <xsl:sort select="@createDate" data-type="text" order="descending" /> <xsl:if test="position() = 1"> <xsl:value-of select="updateDate" /> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:template match="/"> <!-- change the mimetype for the current page to xml --> <!-- <xsl:value-of select="umbraco.library:ChangeContentType('text/xml')"/> --> <xsl:value-of select="umbraco.library:ChangeContentType('application/rss+xml')"/> <xsl:text disable-output-escaping="yes"><?xml version="1.0" encoding="UTF-8"?></xsl:text> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title> <xsl:value-of select="$RSSTitle"/> </title> <link> <xsl:value-of select="$SiteURL"/> </link> <pubDate> <xsl:value-of select="$pubDate"/> </pubDate> <generator>umbraco</generator> <description> <xsl:value-of select="$RSSDescription"/> </description> <language>en</language> <xsl:apply-templates select="$rootTextpageNode//node [string(data [@alias='umbracoNaviHide']) != '1']"> <xsl:sort select="@createDate" order="descending" /> </xsl:apply-templates> </channel> </rss> </xsl:template> <xsl:template match="node"> <xsl:if test="position() <= $RSSNoItems"> <item> <title> <xsl:value-of select="@nodeName"/> </title> <link> <xsl:value-of select="$SiteURL"/> <xsl:value-of select="umbraco.library:NiceUrl(@id)"/> </link> <pubDate> <xsl:value-of select="umbraco.library:FormatDateTime(@createDate,'r')" /> </pubDate> <guid> <xsl:value-of select="$SiteURL"/> <xsl:value-of select="umbraco.library:NiceUrl(@id)"/> </guid> <content:encoded> <xsl:value-of select="concat('<![CDATA[ ', ./data [@alias='Title'],']]>')" disable-output-escaping="yes"/> <xsl:value-of select="concat('<![CDATA[ ', ./data [@alias='Text'],']]>')" disable-output-escaping="yes"/> </content:encoded> </item> </xsl:if> </xsl:template> </xsl:stylesheet>Thanks in advance.
Hi,
try filtering your DocTypes before applying the template like this:
think this should work for you
Toby
I've got another question..
I moved my project to a staging environment and my RSS Feeds stopped working. The generated XML is different for the same XSLT. Here's what I get when I view the source of the feed:
Local:
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rssdatehelper="urn:rssdatehelper"> <channel xmlns:cfi="http://www.microsoft.com/schemas/rss/core/2005/internal" cfi:lastdownloaderror="None"> <title cf:type="text">TITLE</title> <link>http://localhost:50222/</link>; <generator>umbraco</generator> <description cf:type="text">DESCRIPTION</description> <language>en</language> <item> <title xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" cf:type="text">ArticleTitle</title> <link>http://localhost:50222/ArticleLink.aspx</link>; <pubDate>Wed, 14 Apr 2010 18:15:41 GMT</pubDate> <atom:published xmlns:atom="http://www.w3.org/2005/Atom">2010-04-14T18:15:41Z</atom:published> <atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-04-14T18:15:41Z</atom:updated> <guid>http://localhost:50222/ArticleLink.aspx</guid>; <description xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" cf:type="html"> <p>TESTTESTTEST</p> </description> <cfi:id>9</cfi:id> <cfi:effectiveId>3447083198</cfi:effectiveId> <cfi:read>true</cfi:read> <cfi:downloadurl>http://localhost:50222/rss.aspx</cfi:downloadurl>; <cfi:lastdownloadtime>2010-05-04T16:15:51.185Z</cfi:lastdownloadtime> </item> (...) </channel> </rss>Stage:
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rssdatehelper="urn:rssdatehelper"> <channel> <title>TITLE</title> <link> LINK</link> <pubDate></pubDate> <generator>umbraco</generator> <description>DESCRIPTION</description> <language>en</language> <item> <title>ArticleTitle</title> <link> ArticleLink</link> <pubDate>Wed, 28 Apr 2010 12:27:53 GMT</pubDate> <guid> ArticleLink</guid> <content:encoded> <![CDATA[ <p>TESTTESTTEST</p> ]]> </content:encoded> </item> (...) </channel> </rss>What's my problem here? Can't figure this one out..
Thanks.
Correction: the feeds didn't stop working, but they aren't well formed. The content's there.
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.