Xml 在XSLT/XPath中(*@*)不是什么意思?

Xml 在XSLT/XPath中(*@*)不是什么意思?,xml,xslt,xpath,xslt-2.0,xpath-2.0,Xml,Xslt,Xpath,Xslt 2.0,Xpath 2.0,有人能解释一下这行代码的实际用途吗: <xsl:when test="not(*|@*)"> 我知道括号内的表达式必须为false才能触发下一行代码,我只是不确定如何解释它。当当前节点没有任何名称的子元素或属性时,测试将通过: *选择当前节点的子元素,而不考虑名称 @*选择当前节点的属性,而不考虑名称 |是并集运算符,并组合其操作数的节点集(或序列) not()。 在节点集(或序列)的情况下,空将转换为假,反转为真。因此,如果不存在子元素和属性,则它们通过

有人能解释一下这行代码的实际用途吗:

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


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

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

  • *
    选择当前节点的子元素,而不考虑名称
  • @*
    选择当前节点的属性,而不考虑名称
  • |
    是并集运算符,并组合其操作数的节点集(或序列)
  • not()。
    在节点集(或序列)的情况下,空将转换为假,反转为真。因此,如果不存在子元素和属性,则它们通过
    的集合并集将为空,
    not()
    将返回true,从而实现对无子元素和无属性的测试

学分:感谢对该答案的一些有益改进。

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

  • *
    选择当前节点的子元素,而不考虑名称
  • @*
    选择当前节点的属性,而不考虑名称
  • |
    是并集运算符,并组合其操作数的节点集(或序列)
  • not()。
    在节点集(或序列)的情况下,空将转换为假,反转为真。因此,如果不存在子元素和属性,则它们通过
    的集合并集将为空,
    not()
    将返回true,从而实现对无子元素和无属性的测试
学分:感谢您对这个答案进行了一些有益的改进