tags:

views:

230

answers:

2

I've got an xml feed that will be published in one location of our website, and would like to repurpose that for an RSS feed.

A few different pages on the website will also be referencing the same xml - all of those transformations are set up and working.

The base xml file (XMLTEST.xml) is using this structure:

<POST>
  <item>
    <POST_ID>80000852</POST_ID>
    <POST_TITLE>title</POST_TITLE>
    <POST_CHANNEL>I</POST_CHANNEL>
    <POST_DESC>description</POST_DESC>
    <LINK>http://www...&lt;/LINK&gt;
    <STOC>N</STOC>
  </item>
</POST>

I'm trying to transform the xml into an RSS feed using the following setup (feed.xml + rss.xsl)

feed.xml:

<?xml-stylesheet href="rss.xsl" type="text/xsl"?>
<RSSChannels>
  <RSSChannel src="XMLTEST.xml"/>
</RSSChannels>

rss.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

  <xsl:output method="xml" omit-xml-declaration="yes" />

  <xsl:template match="RSSChannels">
    <rss version="2.0">
      <channel>
        <title>site title</title>
        <link></link>
        <description>Site description...</description>
        <xsl:apply-templates />
      </channel>
    </rss>
  </xsl:template>

  <xsl:template match="RSSChannel">
    <xsl:apply-templates select="document(@src)" />
  </xsl:template>

  <xsl:template match="item">
    <xsl:choose>
      <xsl:when test="STOC = 'Y'"></xsl:when>
      <xsl:when test="POST_CHANNEL = 'I'"></xsl:when>
      <xsl:otherwise>
        <item>
          <title>
            <xsl:value-of select="*[local-name()='POST_TITLE']" />
          </title>
          <link>
            <xsl:value-of select="*[local-name()='LINK']" />
          </link>
          <description>
            <xsl:value-of select="*[local-name()='POST_DESC']" />
          </description>
        </item>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

When I try to view the output of feed.xml in Firefox, all of the filtering is applied correctly (sorting out items that shouldn't be published in that channel), but the page outputs as plain text, rather than the usual feed-detection that takes place in Firefox. Any ideas on what I'm missing?

Thanks for any suggestions you can provide.

A: 

I'm pretty sure you should not set omit-xml-declaration. See examples at this RSS tutorial.

Conspicuous Compiler