我知道一些XPath函数,例如tokenize,substring-after,substring-before等。使用Xpath函数从给定字符串中提取所有变量名的最佳方法是什么?
例如:
字符串:快速棕色$ {firstVar}从$ {secondVar}跳过$ {thirdVar}
输出:应该给firstVar,secondVar,thirdVar,使用xsl:for-each循环变量。
答案 0 :(得分:3)
为这些变量解析字符串的最简单方法是使用\old
,尽管这是一个XSLT函数,而不是您请求的XPath函数。您只需要为变量定义一个模式,然后在<xsl:analyze-string>
中得到结果,例如:
<xsl:matching-substring>
您可以在W3C规范文档中找到有关使用情况的更多信息:https://www.w3.org/TR/xslt20/#analyze-string
答案 1 :(得分:1)
您可以执行类似
的操作tokenize($input, '(^.|\}).*?(\$\{|$)')
我不得不使用“^”。而不是“^”来绕过分隔符不能为空字符串的规则,因此它不会匹配字符串开头的变量。你可以通过在字符串开头连接一个空格来解决这个问题,但这可能是一个更聪明的方法。