2012-03-09 20 views

回答

2

XPath匹配是相對於匹配的XML中的「當前節點」(即當前位置)。

*匹配當前節點的所有子元素,而/匹配根目錄(只有根目錄) - 不管當前節點是什麼。

還要注意,根不是XML的根元素,它實際上是它的上層 - 根元素是根的子元素。

如果你有這樣的XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/|*"> 
     <item name="{name()}"> 
     <xsl:apply-templates/> 
     </item> 
    </xsl:template> 

</xsl:stylesheet> 

,你把它應用到這個XML:

<rootElement> 
    <subElement1/> 
    <subElement2/> 
</rootElement> 

你會得到這樣的:

<item name=""> 
    <item name="rootElement"> 
    <item name="subElement1" /> 
    <item name="subElement2" /> 
    </item> 
</item> 

第一<item name="">對應匹配的/(這不是一個元素,所以沒有名稱),其他人是米*

+0

是否有任何意義把另一個xsl:template元素與matcihng模式「/」放在同一個樣式表中? – Bax 2012-03-09 15:01:11

+0

@Bax,除非其中一個或另一個模板具有指定的優先級,因爲這兩個模板都將匹配/具有相同的優先級。 – 2012-03-09 15:48:09

相關問題