我在运行时使用XSL生成html。我的任务是在打印完所有数据后打印签名部分。我打印的数据如下:
客户1数据
客户2数据
客户3数据
客户4数据
客户5数据
客户2的签名
每个客户数据都有ID,名称,地址等,每位客户最多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.
答案 0 :(得分: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