Xml 这在xsl中代表什么?匹配="@*|节点();
有人能解释一下这在xsl中意味着什么吗?每个表达式到底代表什么Xml 这在xsl中代表什么?匹配="@*|节点();,xml,xslt-1.0,Xml,Xslt 1.0,有人能解释一下这在xsl中意味着什么吗?每个表达式到底代表什么 <xsl:template match="@*|node()"> @*匹配任何属性节点,节点()匹配任何其他类型的节点(元素、文本节点、处理指令或注释)。因此,匹配@*|node()的模板将应用于未被更特定模板使用的任何节点 最常见的例子是标识模板 另一方面,node()不包含属性的原因是XPath数据模型中的属性与其他节点类型位于不同的轴上,并且不被视为其包含元素的子元素。与@*| node()完全展开的手写体等价物
<xsl:template match="@*|node()">
@*
匹配任何属性节点,节点()
匹配任何其他类型的节点(元素、文本节点、处理指令或注释)。因此,匹配@*|node()
的模板将应用于未被更特定模板使用的任何节点
最常见的例子是标识模板
另一方面,
node()
不包含属性的原因是XPath数据模型中的属性与其他节点类型位于不同的轴上,并且不被视为其包含元素的子元素。与@*| node()
完全展开的手写体等价物是属性::*| child::*|child::text()| child::processing-instruction()| child::comment()
。
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:template match="foo">
<bar><xsl:apply-templates select="@*|node()" /></bar>
</xsl:template>
</xsl:stylesheet>