2011-02-09 76 views
0

我有下面的XML循環在XSLT

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet href="sample.xsl" type="text/xsl"?> 
<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom" 
xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" 
xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <channel 
    xmlns:cfi="http://www.microsoft.com/schemas/rss/core/2005/internal"> 
     <title cf:type="text">The Hindu - Front Page</title> 
     <link>http://www.hindu.com/</link> 
     <description cf:type="text">The Internet edition of The Hindu, 
      India's national newspaper</description> 
     <image> 
      <url>http://www.hindu.com/hindu/hindux.gif</url> 
      <title>hindu.com</title> 
      <link>http://www.hindu.com/</link> 
     </image> 
     <item> 
      <title cf:type="text" 
      xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" 
      >ISRO spectrum deal under review: Centre</title> 
     </item> 
     <item> 
      <title cf:type="text" 
      xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" 
      >Response from Devas</title> 
     </item> 
    </channel> 
</rss> 

RSS /信道/項目可以是任何計數(在當前情況下,它計數爲2)。我需要的其他後顯示的標題爲選取框一個審查如下

ISRO頻譜交易:中心,從天王響應,....,....

我怎樣才能在實現這一目標XSLT?好心指點

感謝

回答

2
<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:cfi="http://www.microsoft.com/schemas/rss/core/2005/internal" 
    xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    exclude-result-prefixes="cfi cf dc"> 
    <xsl:output method="html" indent="yes"/> 

    <xsl:template match="/*"> 
     <div id="marquee"> 
      <xsl:apply-templates select="channel/item/title"/> 
     </div> 
    </xsl:template> 

    <xsl:template match="title"> 
     <xsl:value-of select="."/> 
     <xsl:if test="not(position() = last())">, </xsl:if> 
    </xsl:template> 

</xsl:stylesheet> 

結果對你的樣品:

<div id="marquee">ISRO spectrum deal under review: Centre, Response from Devas</div> 
+0

酷....這部作品由於一噸的幫助。順便說一句,你能爲XSL推薦任何好書嗎? – padLing 2011-02-09 09:00:58

+0

@padLing,那麼你應該接受答案(只需點擊我答案左上角的複選標記)。 – Flack 2011-02-09 09:48:47

1

除了@Flack正確的答案,在XSLT 2.0 xsl:value-of指令保留序列。所以,這個樣式表:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <div id="marquee"> 
      <xsl:value-of select="rss/channel/item/title" 
          separator=", "/> 
     </div> 
    </xsl:template> 
</xsl:stylesheet> 

還輸出:

<div id="marquee" 
>ISRO spectrum deal under review: Centre, Response from Devas</div>