12

我不明白我们的意思。。

<xsl:template match="/|@*|node()">
<xsl:apply-templates match="@*|node()"/>
</xsl:template>

请帮帮我。。

    <xsl:template match="local-name()='status'"/> 
<xsl:template match="/|@*|node()"> 
<xsl:copy> 
<xsl:apply-templates match="@*|node()"/> 
<xsl:copy> 
</xsl:template>

如果我这样申请,它会 <status>在我的 xml 中省略节点,如何发生

4

1 回答 1

19

/|@*|node()是由三个单一模式组成的匹配模式。/匹配根节点,也称为文档节点,@*匹配任何属性节点,并且node()作为模式“匹配除属性节点和根节点之外的任何节点”。因此,对于任何类型的节点(因为这三种模式描述了所有类型的节点),模板表示<xsl:apply-templates select="@*|node()"/>处理属性节点和子节点的联合。匹配的文档节点/没有属性节点,属性也没有它们,但作为一种紧凑的方式,您经常看到这样的模板。

但是,有一个文档节点的内置模板,<xsl:template match="/"><xsl:apply-templates/></xsl:template>通常人们会忽略/模式中的 。

于 2012-11-16T18:17:05.720 回答