所以我试图解决 xslt 中的一个问题,我通常知道如何用命令式语言来解决这个问题。我正在从 xml 元素列表中将单元格添加到表格中,标准的东西。所以:
<some-elements>
<element>"the"</element>
<element>"minds"</element>
<element>"of"</element>
<element>"Douglas"</element>
<element>"Hofstadter"</element>
<element>"and"</element>
<element>"Luciano"</element>
<element>"Berio"</element>
</some-elements>
但是,我想在达到某个字符最大值后切断一行并开始新的一行。所以说我最多允许每行 20 个字符。我最终会得到这个:
<table>
<tr>
<td>"the"</td>
<td>"minds"</td>
<td>"of"</td>
<td>"Douglas"</td>
</tr>
<tr>
<td>"Hofstadter"</td>
<td>"and"</td>
<td>"Luciano"</td>
</tr>
<tr>
<td>"Berio"</td>
</tr>
</table>
在命令式语言中,我会将元素附加到一行,同时将每个元素字符串计数添加到某个可变变量。当该变量超过 20 时,我将停止,构建一个新行,然后在将字符串计数归零后重新运行该行上的整个过程(从停止的元素开始)。但是,我无法更改 XSLT 中的变量值。这整个无状态的函数评估事情让我陷入了循环。