2012-01-12 14 views
1

の終了後に、私は、実行時にXSLを使用してHTMLを生成しています。私の仕事は、すべてのデータが印刷された後に署名セクションを印刷することです。私はこのようなデータを印刷しています:
お客様1つのデータ
カスタマー2つのデータ
カスタマー3つのデータ
カスタマー4つのデータ
カスタマー5つのデータ
取扱署名 各顧客データ等のID、名前、住所を有し、顧客あたり5つの詳細まで。
すべての顧客データの最後に、オーナーの署名セクションを印刷する必要があります。
現在、顧客データは3ページまで実行されており、所有者セクションは最初のページにのみ印刷されています。しかし、私は3ページの最後に所有者署名が必要です。印刷内容すべてのページ

答えて

1

これは、他のすべて処理の最後にいくつかの望んでいた出力を生成する方法を簡単な例である:

<t> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
<customer/> 
</t> 
:この変換は、次のXML文書に適用されるとき

<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> 

は指名手配結果が生成されます

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

+0

@ sans481:要求された説明で私の答えを更新しました。 –

+0

最後に顧客2の署名を印刷する必要がある場合はどうすればよいですか?すべての顧客データの後に.. – sgowd

関連する問題