我有一个xml Feed会在我们网站的某个位置发布,并希望将其重新用于RSS源。
网站上的一些不同页面也将引用相同的xml - 所有这些转换都已设置并正常工作。
基本xml文件(XMLTEST.xml)正在使用此结构:
<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...</LINK>
<STOC>N</STOC>
</item>
</POST>
我正在尝试使用以下设置将xml转换为RSS提要(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">
<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>
当我尝试在Firefox中查看feed.xml的输出时,所有过滤都被正确应用(整理出不应该在该频道中发布的项目),但页面输出为纯文本,而不是通常在Firefox中进行Feed检测。关于我缺少的任何想法?
感谢您提供的任何建议。