首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT中的动态选择条件

XSLT中的动态选择条件
EN

Stack Overflow用户
提问于 2013-05-20 20:41:08
回答 2查看 246关注 0票数 1

当需要以下要求时,如何在XSLT中使用选择条件

代码语言:javascript
复制
<xsl:choose>
<xsl:when test="contains(@name,'top %d holdings' ) ">
<!--code-->
</xsl:when>
</xsl:choose>

应该选择所有包含.的数据。

  1. 前五大持股
  2. 前10大持股
  3. 前30位持股
  4. 前27名持有量
  5. 最高*持有量
EN

回答 2

Stack Overflow用户

发布于 2013-05-20 21:56:08

如果您在这里使用XSLT2.0,您可以使用匹配函数,它允许您通过正则表达式匹配文本

代码语言:javascript
复制
<xsl:when test="matches(@name, '.*top \d+ holdings.*')">

另一方面,如果您使用XSLT1.0,那么匹配函数是不可用的。在非常具体的情况下,您可以这样做的一种方法是在“持有”之前提取“持有”之前的文本,然后检查它是一个数字:

代码语言:javascript
复制
<xsl:when test="string(number(substring-before(substring-after(@name, 'top '), ' holdings' ) )) != 'NaN'">
票数 1
EN

Stack Overflow用户

发布于 2013-05-21 00:56:27

您可以使用子字符串-前面()子字符串-后()获取topholdings之间的文本,然后使用翻译()函数删除数字和*字符,然后验证结果是否为空字符串。

代码语言:javascript
复制
<xsl:choose>
  <xsl:when 
       test="translate(
               substring-before(substring-after(@name, 'top '), ' holdings' ),
               '0123456789*', 
               '') = '' ">
        <!--code-->
    </xsl:when>
</xsl:choose>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16658008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档