我有如下字符串,
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个或更多逗号,则该字符串将为空。