2012-01-13 52 views
0

我在运行时使用XSL生成html。我的任务是打印所有数据后打印签名部分。我打印的数据是这样的:

客户1个数据
客户2个数据
客户3个数据
客户4个数据
客户5个数据

客户2的签名
在所有内容之后打印静态内容

每个客户的数据有编号,姓名,地址等,每个客户最多5个细节。 在所有客户数据的末尾,我需要打印客户2的签名部分。 现在客户数据一直运行到3页,并且所有者部分仅在第一页打印。但是在3页的末尾,我需要客户2。

看看样品XML ..

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


我需要这样的

Customer 1 data 

    Customer 2 data 

    Customer 3 data 

    Customer 4 data 

    Customer 5 data 

    Customer 2' Signature. 
+1

提供一个完整的(但是很小的源XML文档)和确切的想要的结果总是很好的。没有这个答案只是一个猜测。 – 2012-01-13 04:28:41

+0

^编辑了这个问题。 – sgowd 2012-01-13 04:35:17

+0

抱歉:P原始代码是生产代码...不能发布在这里,我需要尽早解决问题。现在正在工作。非常感谢! – sgowd 2012-01-13 04:53:00

回答

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

    <xsl:apply-templates mode="sign" select= 
    "customer[@id=2]/SignatureSection"/> 
</xsl:template> 

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

<xsl:template match="SignatureSection"/> 

</xsl:stylesheet> 

当下面的XML文档应用(因为懒惰OP提供的假XML是没用的):

<t> 
    <customer id="1"> 
    Some Customer1 Data 

    <SignatureSection id="1"> 
     Signature of Customer1 
    </SignatureSection> 
    </customer> 
    <customer id="2"> 
    Some Customer2 Data 
    <SignatureSection id="2"> 
     Signature of Customer2 
    </SignatureSection> 
    </customer> 
    <customer id="3"> 
    Some Customer3 Data 
    <SignatureSection id="3"> 
     Signature of Customer1 
    </SignatureSection> 
    </customer> 
    <customer id="3"> 
    Some Customer4 Data 
    <SignatureSection id="4"> 
     Signature of Customer4 
    </SignatureSection> 
    </customer> 
    <customer id="5"> 
    Some Customer5 Data 
    <SignatureSection id="5"> 
     Signature of Customer5 
    </SignatureSection> 
    </customer> 
</t> 

生产什么,我们猜测可能是想要的结果

Customer 1 data 

Customer 2 data 

Customer 3 data 

Customer 4 data 

Customer 5 data 

     Signature of Customer2 
+0

这是采取相同的页面。签名进入第一页,数据运行至第4页。导致第一页上的数据重叠。 – sgowd 2012-01-13 10:43:56

+0

@ sans481:对不起,我不明白你的评论的一个单词,以及它如何与这个答案相关。如果你再次改变了这个问题,请随时提出一个新问题 - 这次试着提供至少基本的数据,以使这个问题不需要猜测。 – 2012-01-13 13:37:22