我目前正在做一个java项目,我得到一个包含RSS提要的网址,我需要将该RSS提要转换为HTML。所以我做了一些研究并设法将其转换为XML,因此我可以使用XSLT将其转换为HTML。但是,该过程需要一个XSL文件,我不知道如何获取/创建。我该如何尝试这个问题?我无法对其进行硬编码,因为资源网址可能会更改网站上的事件/新闻,从而影响我的输出。
答案 0 :(得分:1)
RSS Feed有两种格式:RSS 2.0和ATOM - 根据您希望/需要处理哪种类型,您需要使用不同的XSLT。
这是一个非常简单的XSLT,它将RSS 2.0提要转换为HTML页面:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="text()"></xsl:template>
<xsl:template match="item">
<h2>
<a href="{link}">
<xsl:value-of select="title"/>
</a>
</h2>
<p>
<xsl:value-of select="description" disable-output-escaping="yes"/>
</p>
</xsl:template>
<xsl:template match="/rss/channel">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
</html>
<body>
<h1>
<a href="{link}">
<xsl:value-of select="title"/>
</a>
</h1>
<xsl:apply-templates/>
</body>
</xsl:template>
</xsl:stylesheet>
......对于ATOM Feed来说也是如此:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:atom="http://www.w3.org/2005/Atom">
<xsl:output method="html" indent="yes"/>
<xsl:template match="text()"></xsl:template>
<xsl:template match="atom:entry">
<h2>
<a href="{atom:link/@href}">
<xsl:value-of select="atom:title"/>
</a>
</h2>
<p>
<xsl:value-of select="atom:summary"/>
</p>
</xsl:template>
<xsl:template match="/atom:feed">
<html>
<head>
<title>
<xsl:value-of select="atom:title"/>
</title>
</head>
</html>
<body>
<h1>
<a href="{atom:link/@href}">
<xsl:value-of select="atom:title"/>
</a>
</h1>
<xsl:apply-templates/>
</body>
</xsl:template>
</xsl:stylesheet>