首页 文章

如何使用XPATH XSLT函数在$ {}中查找字符串?

提问于
浏览
0

我知道一些XPath函数,例如tokenize,substring-after,substring-before等 . 使用Xpath函数从给定字符串中提取所有变量名称的最佳方法是什么?

例如:

字符串:快速棕色$ 从$ 跳过$

输出:应该给firstVar,secondVar,thirdVar,使用xsl:for-each循环变量 .

2 回答

  • 3

    解析这些变量的字符串的最方便方法是使用 <xsl:analyze-string> ,尽管这是一个XSLT函数,而不是您请求的XPath函数 . 您只需要为变量定义一个模式,然后在 <xsl:matching-substring> 中得到结果,例如:

    <xsl:analyze-string select="[[[xpath selector for your string]]]"
           regex="\$\{.+\}">
        <xsl:matching-substring>
             [[[ do your processing of the variable names here ]]]
        </xsl:matching-substring>
      </xsl:analyze-string>
    

    您可以在W3C规范文档中找到有关使用情况的更多信息:https://www.w3.org/TR/xslt20/#analyze-string

  • 1

    你可以做点什么

    tokenize($input, '(^.|\}).*?(\$\{|$)')
    

    我不得不使用“^” . 而不是“^”来绕过分隔符不能是空字符串的规则,因此它不会匹配字符串开头的变量 . 你可以通过在字符串的开头连接一个空格来解决这个问题,但这可能是一个更聪明的方法 .

相关问题