Sharepoint XSL - 将字符串拆分为组成部分
我正在使用启用了“多选”选项的“选择”网站列,以便用户可以使用列中的多个选项来标记列表项。Sharepoint XSL - 将字符串拆分为组成部分
此列随后为内容查询web部件中的设计功能提供支持 - 在此处添加列选项以创建图像文件名。
- 选择1
- 选择2
- Choice3
- Choice4
成为
<img src="http://mysite/content-Choice1.jpg />
我有问题是,XSL解析器被送到具有串分号(;)和散列(#)分隔选项值。如果所有的4个选项中打勾,送入XSLT分析器,字符串将是:
;#Choice1;#Choice2;#Choice3;#Choice4
我怎样才能通过串并工作,每一个选择单独部署到自己的XSL变量?
我已经尝试了各种子字符串函数之前,但我不能得到任何工作。
由于XPath 1.0不支持tokenize()
函数,因此您必须自己完成所有工作。例如,可以从以下选项中递归地生成<img>
元素:
<xsl:template name="RecurseConvertChoicesToImages">
<xsl:param name="choices" />
<xsl:variable name="token"
select="substring-before($choices, ';#')" />
<xsl:variable name="nextToken"
select="substring-after($choices, ';#')" />
<xsl:if test="$token">
<img src="http://mysite/content-{$token}.jpg" />
</xsl:if>
<xsl:if test="$nextToken">
<xsl:call-template name="RecurseConvertChoicesToImages">
<xsl:with-param name="choices" select="$nextToken" />
</xsl:call-template>
</xsl:if>
</xsl:template>
喜欢你的回答 – 2010-12-14 10:23:09
@Ashutosh Singh,if你喜欢答案,点击“这个答案很有用”向上箭头。 – rds 2010-12-15 13:24:05
一般'xslt'问题应该有输入源,期望的输出和关系。这个问题是针对特定的XSLT框架的。作为一般的XSLT问题,答案是没有办法'我如何处理字符串并将每个选项分离到它自己的XSL变量中?'。您可以为每个“Choice”字符串构建一个临时结果树(带有用于XSLT 1.0的扩展函数)。在XSLT中查看有关令牌化的问题。 – 2010-12-13 18:42:51