我正在尝试学习如何进行RSS提要,而我正在尝试制作xslt和css部分。我需要rss feed来显示每个项目的标题,描述,长度和pubDate,我正在尝试使用CSS。
这是我到目前为止所做的事情(抱歉,不太好):
CSS文件(rotten.css):
@charset "UTF-8";
/* CSS Document */
h2 {
color:#03C;
}
.intro {
font-style:italic;
color:#666
}
xslt文件(rotten.xslt):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0
Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title><xsl:value-of select="/rss/channel/title" /></title>
<!-- create a link to the CSS stylesheet -->
<link type="text/css" rel="stylesheet" href="rotten.css" />
</head>
<body>
<!--print out the title and description of the feed. -->
<h2><xsl:value-of select="/rss/channel/title" /></h2>
<p class="intro"><xsl:value-of select="/rss/channel/description" /></p>
<hr />
<!-- print out the news stories -->
<xsl:apply-templates select="/rss/channel/item" />
</body>
</html>
</xsl:template>
<xsl:template match="/rss/channel/item">
<!-- put HTML and XSLT for displaying the stories here -->
</xsl:template>
</xsl:stylesheet>
我需要添加什么才能使所有内容协同工作?或者......我完全搞砸了,无法恢复?
我知道RSS提要的基本结构看起来像这样(减去实际数据):
<rss>
<channel>
<title>Name of feed</title>
<link>URL of rss feed xml file</link>
<description>Description of feed</description>
<item>
<title>Item1 title</title>
<link>Item1 URL</link>
<description>Item1description</description>
</item>
</channel>
</rss>
我认为应该放在xslt文件中,但我不知道在哪里...
答案 0 :(得分:2)
忘记CSS,直到获得HTML输出数据为止 - 您可以稍后再回来查看。
显示每个项目的代码应放在您在XSLT底部创建的<xsl:template match="/rss/channel/item">
模板中。例如(假设您的XML片段是正确的),您可以通过修改模板为每个Feed获得一个非常基本的连字符分隔输出:
<xsl:template match="/rss/channel/item">
<p><!-- wrap the output in a p so it appears on one line per item -->
<xsl:apply-templates select="title"/> -
<xsl:apply-templates select="link"/> -
<xsl:apply-templates select="description"/>
</p>
</xsl:template>
将自动为rss / channel中的每个项目调用此模板,因此您应该获取列表中的所有项目。然后,您可以使用您喜欢的任何HTML或CSS来装扮它,并且可以进一步了解XSLT以找到使用模板获得所需内容的更好方法。
但希望这会让你开始。