2014-02-07 92 views

回答

3

第二条规则,

<xsl:template match="*"> 

任何元件相匹配的任何地方,并且将上下文节点到该元素。

这是其他的(1和3),其中的差异是微妙的。要理解这种差异,您必须了解“文档根”节点的概念。如this answer状态,

根节点是处于 XML文档的所有其他节点的祖先节点。它不是一个元素。 ...令人困惑的是,最外层的元素有时被称为“根元素”。

考虑到这一点

<xsl:template match="/*"> 

匹配只有“最外层的元素”的文件中,并且将上下文到该元素,虽然仅

<xsl:template match="/"> 

匹配的“文档根“本身,并将其作为上下文。该规则将与总是匹配,即使是空文档,而/*也只会匹配实际上具有元素的文档。

所以,如果你有

<A /> 

文件的第一条规则(匹配/*)将匹配,以及上下文节点将A

(匹配/)第三条规则也将匹配,但是A将上下文节点的孩子

+0

非常感谢你! – testermaster