1

我目前正在做一个 java 项目,我得到一个包含 RSS 提要的 url,并且需要将该 RSS 提要转换为 HTML。所以我做了一些研究并设法将其转换为 XML,因此我可以使用 XSLT 将其转换为 HTML。但是,该过程需要一个 XSL 文件,我不知道如何获取/创建该文件。我将如何尝试这个问题?我无法对其进行硬编码,因为资源 url 可能会更改网站上的事件/新闻,从而影响我的输出。

4

1 回答 1

1

RSS 提要有两种格式:RSS 2.0ATOM - 根据您想要/需要处理的类型,您将需要不同的 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 提要相同:

<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>
于 2013-09-10T13:15:52.840 回答