2009-12-07 44 views

Trả lời

12
  • xsl:copy-of là một bản sao chính xác của các yếu tố đầu vào xml phù hợp. Không có xử lý xslt diễn ra và đầu ra từ phần tử đó sẽ chính xác giống như đầu vào.

  • xsl:apply-templates yêu cầu công cụ xslt xử lý mẫu khớp với các phần tử đã chọn. xsl:apply-templates là những gì cho xslt khả năng ghi đè của nó, vì các mẫu bạn tạo với khớp trên các phần tử có thể có các ưu tiên khác nhau và mẫu có mức độ ưu tiên cao nhất sẽ được thực thi.

Input:

<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 sản lượng 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> 

Đầu ra Xml 2:

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

sẽ chỉ đơn giản là trả lại cho bạn một bãi chứa của XML trong nút thiết lập

apply-templates 

mặt khác sẽ áp dụng bất kỳ mẫu áp dụng cho các nút thiết lập thông qua nó cung cấp.

Các vấn đề liên quan