在XSLT / XPath中不是* | @ *是什么意思?

问题描述

谁能解释一下这行代码的实际作用:

<xsl:when test="not(*|@*)">

我知道括号内的表达式必须为false才能触发下一行代码,但我不确定如何解释它。

解决方法

当当前节点没有任何名称的子元素或属性时,测试将通过:

  • *选择当前节点的子元素,而不考虑名称;
  • @*选择当前节点的属性,而不考虑名称;
  • |是联合运算符,并组合其操作数的节点集(或序列);
  • not()会将其参数转换为布尔值,然后将其反转。 对于节点集(或序列),空度将转换为false,然后转换为true。因此,如果没有子元素且没有属性,则通过|的集合联合将为空,并且not()将返回true,从而对 没有子元素和没有属性

信用::感谢@DimitreNovatchev对该答案的一些有益改进。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...