Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Alec Colebrook-Clark 134 posts 258 karma points
    Jul 21, 2009 @ 11:37
    Alec Colebrook-Clark
    0

    RSS Feed

    Howdy

    Im not sure if this is the right forum, if it isnt then apologies.

    Ive modified the XSLT that come with the blog4umbraco package to create a News feed for my current project, however when I used an online RSS validator (http://www.feedvalidator.org/) it threw out a few errors, nothing major as I know the feed works.The first error was about the urn:rssdatehelper. Second was about the <date> field being in the wrong format (i checked the source it was checking, no date in the field).

    Basically Im wondering if the validator isnt picking up the correct RSS as the RSS macro isnt having any variables parsed through?

    and secondly how would one go about validating their RSS feed?

    The code i am using is:

    NewsRSS:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxml="urn:schemas-microsoft-com:xslt"
    xmlns:umbraco.library="urn:umbraco.library"
    xmlns:rssdatehelper="urn:rssdatehelper"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    exclude-result-prefixes="msxml umbraco.library">


    <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('20')"/>
    <xsl:variable name="RSSTitle" select="$currentPage/data[@alias = 'PageTitle']"/>
    <xsl:variable name="SiteURL" select="string('http://harrogate.mba.ac.uk')"/>
    <xsl:variable name="RSSDescription" select="$currentPage/node/node/node/node/data[@alias = 'Description']"/>
    <xsl:variable name="RSSpub" select="@updateDate"/>

    <!-- 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="$currentPage/descendant-or-self::node [@nodeTypeAlias = 'NewsEvents'] [string(data [@alias='umbracoNaviHide']) != '1']">
    <xsl:sort select="$RSSpub" 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:text disable-output-escaping="yes">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</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="$currentPage/node/node/node/node [string(data [@alias='umbracoNaviHide']) != '1']">
    <xsl:sort select="$RSSpub" order="ascending" />
    </xsl:apply-templates>
    </channel>
    </rss>

    </xsl:template>

    <xsl:template match="node">
    <xsl:if test="position() &lt;= $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($RSSpub,'r')" />
    </pubDate>
    <guid>
    <xsl:value-of select="$SiteURL"/>
    <xsl:value-of select="umbraco.library:NiceUrl(@id)"/>
    </guid>
    <content:encoded>
    <xsl:value-of select="concat('&lt;![CDATA[ ', ./data [@alias='bodytext'],']]&gt;')" disable-output-escaping="yes"/>
    </content:encoded>
    </item>
    </xsl:if>
    </xsl:template>

    </xsl:stylesheet>

    Cheers

    Alec

  • Alec Colebrook-Clark 134 posts 258 karma points
    Jul 21, 2009 @ 12:02
    Alec Colebrook-Clark
    0

    Ok nevemind, the validator was just a bit rubbish. Tried on http://validator.w3.org/ ; only got 1 error and it was validated as correct other than that,

    Sorry if i wasted anyones time!

    Alec

Please Sign in or register to post replies

Write your reply to:

Draft