xslt - XSL 分析字符串 -> 匹配子字符串为多个变量

标签 xslt xslt-2.0

我想知道是否可以使用 analyze-string 并在正则表达式中设置多个组,然后将所有匹配组存储在变量中以供稍后使用。

像这样:

<xsl:analyze-string regex="^Blah\s+(\d+)\s+Bloo\s+(\d+)\s+Blee" select=".">
  <xsl:matching-substring>
    <xsl:variable name="varX">
      <xsl:value-of select="regex-group(1)"/>
    </xsl:variable>                                
    <xsl:variable name="varY">
      <xsl:value-of select="regex-group(2)"/>
    </xsl:variable>        
  </xsl:matching-substring>
</xsl:analyze-string>    

这实际上不起作用,但这就是我想要的东西,我知道我可以将 analyze-string 包装在变量中,但这对于我的每个组来说似乎很愚蠢必须处理正则表达式,效率不是很高,我应该能够处理正则表达式一次并存储所有组以供以后使用。

有什么想法吗?

最佳答案

不错

<xsl:variable name="groups" as="element(group)*">
<xsl:analyze-string regex="^Blah\s+(\d+)\s+Bloo\s+(\d+)\s+Blee" select=".">
<xsl:matching-substring>
  <group>
     <x><xsl:value-of select="regex-group(1)"/></x>
     <y><xsl:value-of select="regex-group(2)"/></y>
  </group>   
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>

帮忙?这样,您就有了一个名为 groups 的变量,它是带有捕获的 group 元素的序列。

关于xslt - XSL 分析字符串 -> 匹配子字符串为多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700584/

相关文章:

java - 使用 Saxon 时未拾取 XSLT 输入参数?

java - xslt 转换后为什么在 Tomcat/bin 文件夹中生成文件?如何将此目录更改为 webapps/myApp?

javascript - 将 XML 转换为 HTML : best practice?

xml - 如何在 XSLT2 replace() 函数中转换 'mix and match' 实体?

xml - 使用 XSL 重复 XML 文件中的第一个节点

xml - XSLT 从多个模板匹配写入相同的属性

xml - 使用 xslt :analyze-string to add acronyms to HTML

xml - XSLT 如何更改节点名称的一部分?

php - 尽管XSL样式表几乎为空,但XSLTProcessor::importStylesheet()中的PHP警告

java - Java 中的 XSLT 转换可以输出无效标签警告吗