xsl:if用于单条件判断,仅当test属性的XPath表达式为true时执行内容,不支持else;xsl:choose支持多分支条件逻辑。
在XSLT中,xsl:if 和 xsl:choose 是实现条件逻辑的核心元素,用于根据XML数据的值动态控制输出内容。它们不改变原始XML,只影响样式表如何转换它。
xsl:if 适用于单条件判断,语法简洁,但不支持“否则”分支。它通过 test 属性指定布尔表达式,仅当结果为 true 时执行其中的内容。
@status = 'active'(检查属性)、price > 100(数值比较)、string-length(name) > 0(字符串函数)... ... —— xsl:else 不存在,这是常见误区xsl:choose 类似编程语言中的 switch 或 if-else if-else 结构,由 xsl:when(可多个)和可选的 xsl:otherwise 组成,按顺序匹配,遇到第一个为 true 的 test 就执行对应分支,其余跳过。
VIP客户 、优质客户 、普通客户
normalize-space(.) != '' 显式判断非空文本两者可相互嵌套,但应避免过深嵌套影响可读性。优先用 xsl:choose 处理互斥多选,用 xsl:if 处理独立开关型逻辑(如是否显示某个可选字段)。
$ 前缀,如 test="$priority = 'high'";引用参数用 param 元素声明后同理
输出 test 表达式的计算结果,确认逻辑是否符合预期