2009-06-30 26 views
1

私は、私たちのウェブサイトの1つの場所に公開されるXMLフィードを入手しました。これをRSSフィード用に再利用したいと考えています。XMLを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> 

私は次のセットアップ(feed.xml + rss.xsl)を使用して、RSSフィードにXMLを変換しようとしています

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で行われます。私は何が欠けているかについての任意のアイデア?

ご協力いただきありがとうございます。

答えて