string - 如何获取 xslt 中子字符串的第二次(第三次...)出现?

标签 string xslt substring

我有一个长字符串,用等号(=)作为分隔符分隔,如下所示:

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/

相关文章:

Java - 检测字符串中的不同编码

python - 如何从我的字符串中检索子字符串?

string - 用等价物替换特殊字符

php - 在 PHP 中分解字符串

algorithm - XSLT:如何计算使用字符串匹配找到的属性

PHP 在多维数组中搜索子字符串

variables - xslt - 如何创建一个具有动态确定长度的空格字 rune 本内容的变量,该变量将表现良好

c# - 更改要导入到 Access 数据库的 Xml 的结构

c# - 在任何第一个数字之前拆分字符串

java - HashMap 中的子串