我正在使用“选择”网站列并启用了多项检查选项,以便用户可以使用该列中的多个选项标记列表项。
然后,此列为内容查询webpart中的设计功能提供支持 - 其中附加列选项以创建图像文件名。
变为
<img src="http://mysite/content-Choice1.jpg />
我遇到的问题是XSL解析器被输入一个字符串,该字符串用分号(;)和散列(#)分隔选择值。如果勾选了所有4个选项,则输入XSLT解析器的字符串将为:
;#Choice1;#Choice2;#Choice3;#Choice4
如何处理字符串并将每个选项分成自己的XSL变量?
我已尝试过各种substring-before函数,但我无法正常工作。
答案 0 :(得分:2)
我建议使用JavaScript来解析字符串,然后使用JavaScript显示图像。
答案 1 :(得分:2)
由于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>