XSL 两个条件表达式 If 测试

XSL Two Conditions Expression If Test

我可以根据需要处理我的 2 个表达式:

<xsl:if test="string-length(.) > 15">
    <xsl:if test="not(contains(., ' '))">
        <xsl:attribute name="font-size">5pt</xsl:attribute>
    </xsl:if>
</xsl:if>

但是我不清楚为什么我不能把它写成一个 test:

<xsl:if test="string-length(.) > 15 && not(contains(., ' '))">
    <xsl:attribute name="font-size">5pt</xsl:attribute>
</xsl:if>

这会引发我的处理器 (Apache XSL FO) 的未知错误。

我正在尝试测试我所在的当前节点,看看它是否包含超过 15 个字符并且没​​有白色 space。如果匹配成功,我将字体大小减小为 5pt.

XSLT中使用的表达式语言是XPath,在XSLT 2.0中是XPath 2.0。布尔 and 运算符只有英文名称,因此 string-length(.) > 15 and not(contains(., ' ')) 就是您所需要的。