当需要以下要求时,如何在XSLT中使用选择条件
<xsl:choose>
<xsl:when test="contains(@name,'top %d holdings' ) ">
<!--code-->
</xsl:when>
</xsl:choose>应该选择所有包含.的数据。
发布于 2013-05-20 21:56:08
如果您在这里使用XSLT2.0,您可以使用匹配函数,它允许您通过正则表达式匹配文本
<xsl:when test="matches(@name, '.*top \d+ holdings.*')">另一方面,如果您使用XSLT1.0,那么匹配函数是不可用的。在非常具体的情况下,您可以这样做的一种方法是在“持有”之前提取“持有”之前的文本,然后检查它是一个数字:
<xsl:when test="string(number(substring-before(substring-after(@name, 'top '), ' holdings' ) )) != 'NaN'">发布于 2013-05-21 00:56:27
您可以使用子字符串-前面()和子字符串-后()获取top和holdings之间的文本,然后使用翻译()函数删除数字和*字符,然后验证结果是否为空字符串。
<xsl:choose>
<xsl:when
test="translate(
substring-before(substring-after(@name, 'top '), ' holdings' ),
'0123456789*',
'') = '' ">
<!--code-->
</xsl:when>
</xsl:choose>https://stackoverflow.com/questions/16658008
复制相似问题