2014-02-07 88 views

回答

3

第二條規則,

<xsl:template match="*"> 

任何元件相匹配的任何地方,並且將上下文節點到該元素。

這是其他的(1和3),其中的差異是微妙的。要理解這種差異,您必須瞭解「文檔根」節點的概念。如this answer狀態,

根節點是處於 XML文檔的所有其他節點的祖先節點。它不是一個元素。 ...令人困惑的是,最外層的元素有時被稱爲「根元素」。

考慮到這一點

<xsl:template match="/*"> 

匹配只有「最外層的元素」的文件中,並且將上下文到該元素,雖然僅

<xsl:template match="/"> 

匹配的「文檔根「本身,並將其作爲上下文。該規則將與總是匹配,即使是空文檔,而/*也只會匹配實際上具有元素的文檔。

所以,如果你有

<A /> 

文件的第一條規則(匹配/*)將匹配,以及上下文節點將A

(匹配/)第三條規則也將匹配,但是A將上下文節點的孩子

+0

非常感謝你! – testermaster