2011-12-24 19 views
1

我試圖根據XSLT字符串參數構建一些XML元素。這個想法很簡單。遍歷XSLT字符串參數,併爲每個參數做一些事情

用戶指定一個參數,這是一個逗號分隔的名稱列表。對於每一個名字,我想寫以下XML文件:

<category>{$string}</category> 

哪裏{$string}是逗號分隔值之一。因此,如果用戶提供此參數:category1, category2, cat3,那麼我應該得到這個XML文件中:

<category>category1</category> 
<category>category2</category> 
<category>cat3</category> 

它也應該能夠提供一個空字符串,在這種情況下,沒有印刷的XML元素。

請注意,我使用的是XSLT 2.0,所以請隨時添加基於2.0的XPath和XSLT結構。

回答

3

該轉化(XSLT 2.0):

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 

<xsl:param name="pCategories" 
select="'category1, category2, cat3'"/> 

<xsl:template match="/"> 
    <xsl:for-each select="tokenize($pCategories, ',')[.]"> 
    <category> 
    <xsl:value-of select="normalize-space()"/> 
    </category> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 

當在任何XML文檔(未使用)施加,產生想要的,正確的結果

<category>category1</category> 
<category>category2</category> 
<category>cat3</category>