XSLT / XPath 中的 not(*|@*) 是什么意思?
What does not(*|@*) mean in XSLT / XPath?
谁能解释一下这行代码的实际作用:
<xsl:when test="not(*|@*)">
我知道括号内的表达式必须为假才能触发下一行代码,我只是不确定如何解释它。
当当前节点没有任何名称的子元素或属性时,测试将通过:
*
选择当前节点的子元素,不考虑名称;
@*
选择当前节点的属性,不考虑名称;
|
是并集运算符,合并其操作数的节点集(或序列);
not()
将在反转它之前将其参数转换为布尔值。
在节点集(或序列)的情况下,空将转换为假,反转为真。因此,如果不存在子元素和属性,它们的 set-union 通过 |
将为空,并且 not()
将 return 为真,从而实现对 [=21= 的测试]没有子元素也没有属性.
来源: 感谢 @DimitreNovatchev 对这个答案的一些有益改进。
谁能解释一下这行代码的实际作用:
<xsl:when test="not(*|@*)">
我知道括号内的表达式必须为假才能触发下一行代码,我只是不确定如何解释它。
当当前节点没有任何名称的子元素或属性时,测试将通过:
*
选择当前节点的子元素,不考虑名称;@*
选择当前节点的属性,不考虑名称;|
是并集运算符,合并其操作数的节点集(或序列);not()
将在反转它之前将其参数转换为布尔值。 在节点集(或序列)的情况下,空将转换为假,反转为真。因此,如果不存在子元素和属性,它们的 set-union 通过|
将为空,并且not()
将 return 为真,从而实现对 [=21= 的测试]没有子元素也没有属性.
来源: 感谢 @DimitreNovatchev 对这个答案的一些有益改进。