XSL双条件表达式疑问:嵌套if可用为何&&组合条件报错?
为什么组合条件的
<xsl:if>会报错? 嘿,这个问题我太熟悉了!你遇到的报错根源其实是XPath的运算符语法不兼容——你用了&&来表示逻辑与,但在XSLT(以及它依赖的XPath规范)里,逻辑与的正确写法是and,&&是Java、JavaScript这类编程语言的语法,XPath根本不认识它,所以Apache XSL FO处理器才会返回未知错误。
你之前用嵌套<xsl:if>的写法能正常工作,是因为每个<xsl:if>里的条件都是符合XPath规范的,没有用错误的运算符。
给你修正后的正确代码:
<xsl:if test="string-length(.) > 15 and not(contains(., ' '))"> <xsl:attribute name="font-size">5pt</xsl:attribute> </xsl:if>
只要把&&换成and,处理器就能正确解析你的组合条件,实现“字符数大于15且无空格时设置字号为5pt”的需求啦。
内容的提问来源于stack exchange,提问作者user3783243
相关产品推荐
相关产品推荐

