2011-12-08 11 views
1

RSSフィードのやり方を学びたいと思っています。私はxsltとcssの部分を作ろうとしています。タイトル、説明、長さ、pubDateの各項目を表示するにはrssフィードが必要です。そのためにCSSを使用しようとしています。ここで 最初にXMLとCSSを使ってRSSフィードを試してみよう

は、私が持っているものだ今のところ(申し訳ありませんが、非常に良いではない):

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 "&#160;"> 
]> 
<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ファイルに配置する必要があると仮定し、私はどこかわかりません。..

答えて

2

HTML出力でデータを取得するまで、CSSについては忘れてしまいます。後で戻ってくることができます。

各項目を表示するコードは、XSLTの下部に作成した<xsl:template match="/rss/channel/item">テンプレートに配置する必要があります。このテンプレートは、すべての項目で自動的に呼び出されます

<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> 

:例(とあなたのXMLフラグメントが正しいと仮定)については、次のようなテンプレートを修正することによって、各フィードの非常に基本的な、ハイフンで区切られた出力を得ることができますあなたはリストのすべての項目を取得する必要がありますので、RSS /チャンネル。あなたは好きなHTMLやCSSを使ってこれを飾ることができますし、XSLTをさらに見て、テンプレートを使ってあなたが望むものを得るためのより良い方法を見つけることができます。

しかし、うまくいけば、それはあなたを始めるでしょう。便利な答えは

+0

+1です。 –

関連する問題