Html 如何检查字符串变量在XSL中是否以逗号分隔?
我需要测试xsl变量在xslt中是否只包含一个单词或多个逗号分隔的单词 因为变量是动态的,所以它是一个映射到url querystring的参数,url querystring可以是这样的:Html 如何检查字符串变量在XSL中是否以逗号分隔?,html,xml,regex,xslt-1.0,Html,Xml,Regex,Xslt 1.0,我需要测试xsl变量在xslt中是否只包含一个单词或多个逗号分隔的单词 因为变量是动态的,所以它是一个映射到url querystring的参数,url querystring可以是这样的: index.aspx?role=manager 或 在XSLT中,我需要确定$role参数是一个单词还是多个逗号分隔的单词。如果有多个单词,那么我需要提取每个单词,并根据这些单词进行xslt过滤,如 /rows/row[role=extractedWord[1] or role = extractedWo
index.aspx?role=manager
或
在XSLT中,我需要确定$role参数是一个单词还是多个逗号分隔的单词。如果有多个单词,那么我需要提取每个单词,并根据这些单词进行xslt过滤,如
/rows/row[role=extractedWord[1] or role = extractedWord[2]
因此,只返回与经理或主管角色匹配的行
这可能吗
更新:
我有一个这样的过滤器:
index.aspx?role=manager
如果role只有一个值,比如index.aspx?role=manager
,那么上面的方法就可以了。
但如果角色是这样的多个词,
index.aspx?角色=经理、主管
然后我需要提取字符串“manager,CEO”,并能够执行以下操作:
您可以为$role中的第一个角色设置变量,如下所示:
<xsl:variable name="Role1">
<xsl:choose>
<xsl:when test="contains($Role, ',')">
<xsl:value-of select="substring-before($Role, ',')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Role" />
</xsl:otherwise>
<xsl:choose>
</xsl:variable>
您可以为$role中的第一个角色设置变量,如下所示:
<xsl:variable name="Role1">
<xsl:choose>
<xsl:when test="contains($Role, ',')">
<xsl:value-of select="substring-before($Role, ',')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Role" />
</xsl:otherwise>
<xsl:choose>
</xsl:variable>
XSLT的哪个版本?XSLT2有正则表达式,XSLT1没有。哪个版本的XSLT?XSLT2有正则表达式,XSLT1没有。谢谢,尽管唯一的问题是$Role参数中可能有多达5个甚至更多的逗号分隔的单词。我们是否可以为$Role中的每个单词保存它们,如$Role[0]、$Role[1]等?@SarikaThapaliya:为此,您可能需要使用
tokenize()
的XSLT 1.0实现。这可以作为XSLT处理器中的扩展提供,也可以通过提供XSLT 1.0实现。谢谢,但唯一的问题是$Role参数中可能有多达5个甚至更多的逗号分隔单词。我们是否可以为$Role中的每个单词保存它们,如$Role[0]、$Role[1]等?@SarikaThapaliya:为此,您可能需要使用tokenize()
的XSLT 1.0实现。这可以作为XSLT处理器的扩展,也可以通过提供XSLT1.0实现。