gpt4 book ai didi

XSLT 在每个字符上拆分字符串

转载 作者:行者123 更新时间:2023-12-02 09:36:23 24 4
gpt4 key购买 nike

我有一个字符串,如:“ABCDEFGHI”
我希望 xslt 中的输出为 A、B、C、D、E、F、G、H、I-


我一直在使用 -

<xsl:variable name="string_Comma_Delimited">a,b,c,d,e,f,g,h,i</xsl:variable>

<xsl:call-template name="parseString">
<xsl:with-param name="list" select="$string_Comma_Delimited"/>
</xsl:call-template>


<xsl:template name="parseString">
<xsl:param name="list"/>

<xsl:if test="contains($list, ',')">
<fo:table-cell border-width="0.000pt " border-style="solid" border-color="rgb(0,0,0)" padding-top="4.000pt">
<fo:block-container height="6mm" border-width="0.200pt" border-style="solid" border-color="rgb(0,0,0)" text-align="center">
<fo:block text-align="center">
<xsl:value-of select="substring-before($list, ',')"/>
</fo:block>
</fo:block-container>
</fo:table-cell>
<xsl:call-template name="parseString">
<xsl:with-param name="list" select="substring-after($list, ',')"/>
</xsl:call-template>
</xsl:if>

</xsl:template>

最佳答案

您当前的模板用逗号分割字符串。要简单地将其拆分为每个字符,您仍然可以使用递归模板。模板所做的就是使用 substring 输出第一个字符,然后,如果字符串的长度为 2 个或更多字符,则使用字符串的剩余部分递归调用模板。

尝试这个

<xsl:template name="parseString">
<xsl:param name="text"/>
<letter>
<xsl:value-of select="substring($text, 1, 1)"/>
</letter>
<xsl:if test="string-length($text) > 1">
<xsl:call-template name="parseString">
<xsl:with-param name="text" select="substring($text, 2, string-length($text) - 1)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>

给定 INDIA作为输入,输出如下:
<letter>I</letter>
<letter>N</letter>
<letter>D</letter>
<letter>I</letter>
<letter>A</letter>

现在,如果您使用 XSLT 2.0,您可以使用 xsl:analyze-string实现相同的功能
<xsl:template name="parseString">
<xsl:param name="text"/>
<xsl:analyze-string select="$text" regex=".">
<xsl:matching-substring>
<letter>
<xsl:value-of select="." />
</letter>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:template>

(当然,如果您使用的是 XSLT 2.0,您可以在第一种情况下使用 tokenize 来拆分逗号分隔的字符串)

关于XSLT 在每个字符上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25780999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com