我有一个长字符串,用等号(=)作为分隔符分隔,如下所示:
AAA=BBBBB=CCCCCCCCCCCCCCCC=D=FFFFF=GG=H
子字符串可以有任意长度。如果我想获取第一个子字符串,我可以使用 substring-before 函数,如下所示:
<xsl:value-of select="substring-before($vari, '=')"/>
但是有没有办法只获取第二个(第三个等)子字符串? 我需要 BBBBB 而不是 AAA=BBBBB,需要 CCCCCCCCCCCCCCCC 而不是 AAA=BBBBB=CCCCCCCCCCCCCCCC,所以 substring-before-last 不起作用。
最佳答案
仅供引用,如果您有EXSLT's String extension elements可用,你可以这样做:
<xsl:value-of select="str:tokenize($vari, '=')[2]" />
使用上面的字符串,这将返回 BBBBB
。
在 XPath 2.0 中,内置了此函数:
<xsl:value-of select="tokenize($vari, '=')[2]" />
关于string - 如何获取 xslt 中子字符串的第二次(第三次...)出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942471/