问题描述
谁能解释一下这行代码的实际作用:
<xsl:when test="not(*|@*)">
我知道括号内的表达式必须为false才能触发下一行代码,但我不确定如何解释它。
解决方法
当当前节点没有任何名称的子元素或属性时,测试将通过:
-
*
选择当前节点的子元素,而不考虑名称; -
@*
选择当前节点的属性,而不考虑名称; -
|
是联合运算符,并组合其操作数的节点集(或序列); -
not()
会将其参数转换为布尔值,然后将其反转。 对于节点集(或序列),空度将转换为false,然后转换为true。因此,如果没有子元素且没有属性,则通过|
的集合联合将为空,并且not()
将返回true,从而对 没有子元素和没有属性 。
信用::感谢@DimitreNovatchev对该答案的一些有益改进。