xslt 1.0中字符串的拆分和计数



我有如下字符串,

788565591,1,444,0,15956,555,126.99,15956,666,0,15956,777,101.66,15956
788565591,1,444,0,,555,126.99,,,0,15956,777

我正试图写一个xslt模板来找出字符串中逗号的数量。根据计数,我需要再添加/删除几个,以将长度规范化为32。

请给我一些建议/以代码的形式给我一些想法。

假设当前上下文节点是要处理其值的节点,则

<xsl:variable name="numCommas"
              select="string-length() - string-length(translate(., ',', ''))" />

会给你字符串中的逗号数(从字面上讲,它是计算字符串的长度减去去掉所有逗号的字符串的长度)。如果您有一个包含32个逗号的变量(这可能是在模板之外定义的全局变量):

<xsl:variable name="thirtyTwoCommas"
              select="',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'" />

那么您可以使用substring($thirtyTwoCommas, $numCommas + 1)来获得一个字符串,该字符串包含需要添加到原始字符串以使其达到32的额外逗号数。如果原始字符串中有32个或更多逗号,则该字符串将为空。

相关内容

  • 没有找到相关文章

最新更新