2009-12-07 102 views

回答

12
  • xsl:copy-of是匹配的輸入XML元素的精確副本。不會發生xslt處理,並且該元素的輸出將與輸入完全相同。

  • xsl:apply-templates告訴XSLT引擎來處理匹配所選元素的模板。 xsl:apply-templates是xslt的首要功能,因爲您使用匹配元素創建的模板可以具有不同的優先級,並且具有最高優先級的模板將被執行。

輸入:

<a> 
    <b>asdf</b> 
    <b title="asdf">asdf</b> 
</a> 

XSLT 1:

<xsl:stylesheet ... > 
    <xsl:template match="a"> 
     <xsl:copy-of select="b" /> 
    </xsl:template> 
</xsl:stylesheet> 

XML輸出1:

<b>asdf</b> 
<b title="asdf">asdf</b> 

XSLT 2:

<xsl:stylesheet ... > 
    <xsl:template match="a"> 
     <xsl:apply-templates select="b" /> 
    </xsl:template> 

    <xsl:template match="b" priority="0"> 
     <b><xsl:value-of select="." /></b> 
     <c><xsl:value-of select="." /></c> 
    </xsl:template> 

    <xsl:template match="b[@title='asdf']" priority="1"> 
     <b title="{@title}"><xsl:value-of select="@title" /></b> 
    </xsl:template> 
</xsl:stylesheet> 

XML輸出2:

<b>asdf</b> 
<c>asdf</c> 
<b title="asdf">asdf</b> 
7
copy-of 

將簡單地返回你的XML轉儲中提供的節點集合,另一方面

apply-templates 

將適用於適用於節點集合傳遞任何模板。