【问题标题】:Break text defined length blocks from a long text using xsl使用 xsl 从长文本中断开文本定义长度块
【发布时间】:2017-02-25 14:21:23
【问题描述】:

我需要使用 xsl 将长文本字段分成一个或多个重复项,其中包含具有定义长度(即 50 ch)的长文本的一部分。 输入示例:

....

Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,当时一位不知名的印刷商采用了一种类型的厨房并加扰它来制作一本类型样本书。

....

我期待以下输出: ....

1步骤>
Lorem Ipsum 只是打印 a 的虚拟文本


2步骤>
nd 排版行业。 Lorem Ipsum 一直是


因此,直到达到长文本长度,从 50 个字符增加到 50 个字符...

谢谢。

【问题讨论】:

  • 您分别使用哪个 XSLT 处理器或可以使用哪个 XSLT 版本?

标签: xml xslt


【解决方案1】:

假设您可以使用 XSLT 2.0,您可以使用 xsl:analyze-string 简单地分解字符串:

<xsl:template match="longText">
    <xsl:analyze-string select="." regex=".{{1,50}}">
        <xsl:matching-substring>
            <piece step="{position()}">
                <xsl:value-of select="."/>
            </piece>                
        </xsl:matching-substring>
    </xsl:analyze-string>
</xsl:template>

查看http://xsltransform.net/pPJ8LWa/1 的输出

<piece step="1">Lorem Ipsum is simply dummy text of the printing a</piece>
<piece step="2">nd typesetting industry. Lorem Ipsum has been the </piece>
<piece step="3">industry's standard dummy text ever since the 1500</piece>
<piece step="4">s, when an unknown printer took a galley of type a</piece>
<piece step="5">nd scrambled it to make a type specimen book.</piece>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    相关资源
    最近更新 更多