xsl:variable用于定义不可变变量,支持select属性或标签体赋值,作用域限于声明块内,全局变量需在stylesheet顶层定义,局部变量优先级高于同名全局变量,引用时用$变量名。
xsl:variable 用于在 XSLT 中定义一个不可变的变量(注意:XSLT 中变量一旦赋值就不能修改,类似“常量”)。
变量必须在模板(xsl:template)、模式(xsl:
for-each)或样式表顶层作用域中定义。基本语法是:
两种方式都有效。select 属性适合简单表达式;标签体方式适合拼接文本、嵌套元素或条件逻辑(比如配合 xsl:choose)。
变量不能跨模板访问。例如:
变量值通过带美元符的名称引用,可用于任何支持 XPath 表达式的地方:
注意:不能用 $price 来赋值给另一个变量——除非它本身就是一个有效的 XPath 表达式结果(比如节点集、字符串、数字等)。
基本上就这些。xsl:variable 看似简单,但作用域和不可变性容易忽略,写的时候多留意上下文。