2012-01-12 46 views
1

我在運行時使用XSL生成html。我的任務是打印所有數據後打印簽名部分。我打印的數據是這樣的:
客戶1個數據
客戶2個數據
客戶3個數據
客戶4個數據
客戶5個數據
業主簽名 每個客戶的數據有編號,名稱,地址等,每個客戶最多5個細節。
在所有客戶數據的末尾,我需要打印所有者的簽名部分。
現在客戶數據一直運行到3頁,並且所有者部分僅在第一頁打印。但我需要在3頁結尾處簽名。在所有頁面結束後打印內容

回答

1

這是一個簡單的例子,如何生產一些在處理一切年底想輸出:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/*"> 
    <xsl:apply-templates/> 

    Signature: 
</xsl:template> 

<xsl:template match="customer"> 
    Customer <xsl:value-of select="position()"/> data 
</xsl:template> 
</xsl:stylesheet> 

當這種轉變是在下面的XML文檔應用:

<t> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
</t> 

想要的結果產生

Customer 1 data 

    Customer 2 data 

    Customer 3 data 

    Customer 4 data 

    Customer 5 data 


    Signature: 

說明

所有處理(不考慮非元件頂節點(它是安全的假設,沒有這樣的存在))在該模板被捕獲:

<xsl:template match="/*"> 
    <xsl:apply-templates/> 

    Signature: 
</xsl:template> 

由於字符串"Signature:"實際上是模板中的最後一個,並且由於XML文檔只有一個頂層元素節點,並且此模板僅被選中一次,所以這確保字符串"Signature:"是轉換生成的最後一個輸出。

+0

如果你能解釋我上面的代碼,我會很高興。 – sgowd 2012-01-12 14:08:03

+0

@ sans481:我更新了我的答案和請求的解釋。 – 2012-01-12 14:15:49

+0

如果我必須在最後打印客戶2的簽名,該怎麼辦?畢竟客戶資料.. – sgowd 2012-01-13 02:53:53