【发布时间】:2016-02-15 08:44:37
【问题描述】:
我是 XSLT 的新手,当我在项目中看到几个现有的 xslt 文件时,我看到了以下 sn-ps,
<xsl:apply-templates select="@*|node()" /><xsl:apply-templates select="@*|*" />
有人可以解释一下上述2之间有什么区别吗? 谢谢,小猫
【问题讨论】:
标签: xslt
我是 XSLT 的新手,当我在项目中看到几个现有的 xslt 文件时,我看到了以下 sn-ps,
<xsl:apply-templates select="@*|node()" /><xsl:apply-templates select="@*|*" />有人可以解释一下上述2之间有什么区别吗? 谢谢,小猫
【问题讨论】:
标签: xslt
node() 匹配元素、文本节点、处理指令和 cmets。所以node()和*|text()|processing-instruction()|comment()是一样的
* 只匹配元素
@* 匹配属性
所以,如果你有以下 XML
<Root Attribute="1">
Text Node
<Element>Text</Element>
</Root>
然后,假设您位于Root 节点上,如果您选择了<xsl:apply-templates select="@*|node()" />,那么它将选择Attribute、Text Node 和Element。但是<xsl:apply-templates select="@*|*" /> 只会选择Attribute 和Element。
【讨论】: