我正在制作一个XSL模板,将XHTML/hResume文档转换为纯文本,但我在表格布局方面遇到了麻烦(不是布局表格的问题)。目前我使用了优秀的Dave Pawson的填充模板,代码如下:padding template。
<variable name="newline" select="' '"/>
<template match="xhtml:table">
<variable name="maxWidth">
<for-each select="xhtml:tr/xhtml:th | xhtml:tr/xhtml:td">
<sort select="string-length(child::text()|child::node())" order="descending" data-type="number"/>
<if test="position() = 1">
<value-of select="string-length(child::text()|child::node())"/>
</if>
</for-each>
</variable>
<for-each select="xhtml:tr">
<for-each select="xhtml:th|xhtml:td">
<variable name="string">
<for-each select="child::text()|child::node()">
<value-of select="."/>
</for-each>
</variable>
<value-of select="$string"/>
<call-template name="append-pad">
<with-param name="length" select="$maxWidth - string-length($string)"/>
</call-template>
<text> </text>
</for-each>
<value-of select="$newline"/>
</for-each>
<value-of select="$newline"/>
</template>
这将产生等宽的列,但我想在以下几个方面进行改进:
- 查找并使用每列的最大宽度。为此,需要存储灵活数量的值。在简单情况下,我可以更改maxWidth来实现这一点,但如何处理跨列?
- 居中跨列的内容。
有没有类似于此的模板可以使用?