我有一个具有挑战性的问题,到目前为止我无法解决。
在我的 xlst 中,我有一个包含字符串的变量。我需要将以下序列 [eol] 添加到此字符串中。在一个固定位置,即每 65 个字符
我想使用函数或模板来递归添加这个字符。原因是字符串长度可以变化。
<xsl:function name="funct:insert-eol" as="xs:string" >
<xsl:param name="originalString" as="xs:string?"/>
<xsl:variable name="length">
<xsl:value-of select="string-length($originalString)"/>
</xsl:variable>
<xsl:variable name="start" as="xs:integer">
<xsl:value-of select="1"/>
</xsl:variable>
<xsl:variable name="eol" as="xs:integer">
<xsl:value-of select="65"/>
</xsl:variable>
<xsl:variable name="newLines">
<xsl:value-of select="$length idiv number('65')"/>
</xsl:variable>
<xsl:for-each select="1 to $newLines">
<xsl:value-of select="substring($originalString, $start, $eol)" />
</xsl:for-each>
</xsl:function>
我写的代码越多,我需要引入的变量就越多。这仍然是我理解的不足。
例如,我们希望每 5 个字符一个 [eol]
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
aaaaa[eol]aabbb[eol]bbbcc[eol]ccccc[eol]cc
希望有人对我有一个起点..
问候德克