我有如下所示的XML文件:
<platz>
<platzdesc>
<code>1</code>
<name>Alle</name>
</platzdesc>
<platzdesc>
<code>2</code>
<name>Gold</name>
</platzdesc>
</platz>我需要编写XSLT文件将这个XML转换成3列输出。由于我不太擅长XSLT,请您帮帮我,我尝试过各种方法,但它们都不起作用。输出不是HTML页面,而是PDF。
以下是我迄今所做的尝试:
<fo:block padding-before = "8pt" padding-start ="50pt">
<xsl:for-each select="root/platz/platzdesc">
<fo:block>
<xsl:value-of select="concat(code,' - ', name)" />
</fo:block>
</xsl:for-each>
</fo:block>我正在研究一个更好的解决方案,但欢迎你的帮助。
发布于 2013-12-06 16:02:49
在经历了许多苦难之后,一个解决方案诞生了。享受吧!

请放大看看!
发布于 2013-12-06 12:44:30
正如纳文·拉瓦特(Navin)已经建议的那样,你可以使用一张桌子。
这是XSL-FO中表的一般结构:
<fo:table xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:table-column width="50mm"/>
<fo:table-column width="50mm"/>
<fo:table-column width="50mm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>上面是一个简单的示例表,只有一行,当然可以添加更多。现在,您必须将此结构合并到XSLT样式表中。例如,就像这样:
<xsl:element name="fo:table">
<xsl:element name="fo:table-column">
<xsl:attribute name="width">50mm</xsl:attribute>
</xsl:element>
<xsl:element name="fo:table-column">
<xsl:attribute name="width">50mm</xsl:attribute>
</xsl:element>
<xsl:element name="fo:table-column">
<xsl:attribute name="width">50mm</xsl:attribute>
</xsl:element>
<xsl:element name="fo:table-body">
<xsl:element name="fo:table-row">
<xsl:element name="fo:table-cell">
<xsl:element name="fo:block">
<xsl:value-of select="platz/platzdesc[code=2]"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>https://stackoverflow.com/questions/20423280
复制相似问题