是否可以向<xsl:key use =“”>添加条件?

时间:2019-03-25 09:18:06

标签: xml xslt xslt-1.0

<xsl:key name="item" match="SHOPITEM" use="substring-before(PRODUCT, ' ')" />

您好,我正在使用这部分代码来通过第一个单词来验证元素,但这还不够。 我必须添加一些条件,例如:

  

如果包含(PRODUCT,“ SIZE。”),然后在substring-before(PRODUCT,'SIZE。')   否则将获得PRODUCT的全部价值

是否可以将“ if”放入“使用”中或其他任何方式?

1 个答案:

答案 0 :(得分:2)

在XSLT 1.0中,您可以使用称为Oliver Becker's method的技术,这意味着以这种形式编写$('#paginator').on('click', 'a', function(e) { e.preventDefault(); var pageno = $(this).attr('data-ci-pagination-page'); $.ajax({ data : { 'pageno' : pageno }, method : 'post', // dataType : 'json', url : base_url + 'posts/index', success : function(response) { $("#main_container").html(response); } });

use

因此,就您而言,您可以这样编写concat( substring(Str1,1 div Cond), substring(Str2,1 div not(Cond)) )

xsl:key

您是否认为此可读性是另一回事。

但是,在这种特殊情况下,对于您要实现的逻辑,也可以这样编写键:

<xsl:key name="item2" match="SHOPITEM" use="concat(
        substring(substring-before(PRODUCT, ' SIZE.'), 1 div (contains(PRODUCT, ' SIZE.'))),
        substring(PRODUCT, 1 div (not(contains(PRODUCT, ' SIZE.'))))
    )" />

因此,如果 <xsl:key name="item" match="SHOPITEM" use="substring-before(concat(PRODUCT, ' SIZE.'), ' SIZE.')" /> 包含PRODUCT,它将在第一次出现之前找到文本。如果没有,它将连接SIZE.,从而有效地获取整个字符串

查看http://xsltfiddle.liberty-development.net/jyRYYij上的实际示例