在XSLT表上工作,我最终得到一个带有current()
xpath的模板。我想知道它是指一个属性还是一个元素。
实际上,我无法使用模板过滤器select="./@*"
或select="./*"
来做我想做的事情,因为我希望一次性获取所有元素或属性,并根据需要应用不同的处理方式在类型上,在同一个模板中。
答案 0 :(得分:4)
听起来好像你想为不同的节点设置不同的模板,例如: match="*
和match="@*"
。
如果你真的想在模板内部进行检查,那么你可以使用<xsl:if test="self::*">
来测试它是否是一个元素节点,在XSLT 2中以及稍后也用<xsl:if test="self::attribute()">
来测试它是否是一个属性。在XSLT / XPath 2及更高版本中,还有. instance of element()
. instance of attribute()
测试。