Xml 如何每35个字符为每个nn生成一个字符串中的clrf
假设我的消息字符串长度约为140(至少超过35个字符)。 我需要使用换行来拆分我的字符串 例:消息长度为140 所需输出为:Xml 如何每35个字符为每个nn生成一个字符串中的clrf,xml,xslt,Xml,Xslt,假设我的消息字符串长度约为140(至少超过35个字符)。 我需要使用换行来拆分我的字符串 例:消息长度为140 所需输出为: 第一行1到35个字符 第二行36至70个字符 第三行71至105个字符 第四行106至140 有谁能给我一些逻辑建议吗?您是否尝试过每35个字符连接一个“\r\n”。只要使用每次增加35的循环计数器,只要计数器小于字符串的长度,就可以使用子字符串和连接。您是否尝试过每35个字符简单地连接“\r\n”。只要使用循环计数器,每次增加35,只要计数器小于字符串的长度,并且只
- 第一行1到35个字符
- 第二行36至70个字符
- 第三行71至105个字符
- 第四行106至140
有谁能给我一些逻辑建议吗?您是否尝试过每35个字符连接一个“\r\n”。只要使用每次增加35的循环计数器,只要计数器小于字符串的长度,就可以使用子字符串和连接。您是否尝试过每35个字符简单地连接“\r\n”。只要使用循环计数器,每次增加35,只要计数器小于字符串的长度,并且只使用子字符串和连接。Wikipedia上有一个描述算法的条目:
维基百科上有一个描述算法的条目:
这是一个递归模板,具有可配置的行长参数和要附加到末尾的字符参数
<xsl:template name="word-wrap">
<xsl:param name="str"/>
<xsl:param name="line-length" select="35"/>
<xsl:param name="line-ending" select="'
'"/>
<xsl:choose>
<xsl:when test="string-length($str)>$line-length">
<xsl:value-of select="substring($str,0,$line-length)"/>
<xsl:value-of select="$line-ending"/>
<xsl:call-template name="word-wrap">
<xsl:with-param name="str" select="substring($str,$line-length)" />
<xsl:with-param name="line-length" select="$line-length" />
<xsl:with-param name="line-ending" select="$line-ending" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
注意:这没有任何逻辑来解释拆分的单词边界或连字符。这是一个递归模板,具有可配置的行长参数和要附加到末尾的字符
<xsl:template name="word-wrap">
<xsl:param name="str"/>
<xsl:param name="line-length" select="35"/>
<xsl:param name="line-ending" select="'
'"/>
<xsl:choose>
<xsl:when test="string-length($str)>$line-length">
<xsl:value-of select="substring($str,0,$line-length)"/>
<xsl:value-of select="$line-ending"/>
<xsl:call-template name="word-wrap">
<xsl:with-param name="str" select="substring($str,$line-length)" />
<xsl:with-param name="line-length" select="$line-length" />
<xsl:with-param name="line-ending" select="$line-ending" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
注意:这没有任何逻辑来解释单词边界或拆分单词的连字号。仅使用固定行,您可以硬编码:
<xsl:template match="whatever">
<xsl:value-of select="substring(.,1,35)" />
<xsl:if test="string-length(.) > 35"><xsl:value-of select="concat(' ',substring(.,36,70))" /></xsl:if>
<xsl:if test="string-length(.) > 70"><xsl:value-of select="concat(' ',substring(.,71,105))" /></xsl:if>
<xsl:if test="string-length(.) > 105"><xsl:value-of select="concat(' ',substring(.,106,140))" /></xsl:if>
</xsl:template>
诚然,它很粗糙,但很有效。只需固定行,就可以硬编码:
<xsl:template match="whatever">
<xsl:value-of select="substring(.,1,35)" />
<xsl:if test="string-length(.) > 35"><xsl:value-of select="concat(' ',substring(.,36,70))" /></xsl:if>
<xsl:if test="string-length(.) > 70"><xsl:value-of select="concat(' ',substring(.,71,105))" /></xsl:if>
<xsl:if test="string-length(.) > 105"><xsl:value-of select="concat(' ',substring(.,106,140))" /></xsl:if>
</xsl:template>
诚然,这很粗糙,但很有效