我想做这样的事情:
<xsl:analyze-string select="'ABCD'" regex="(A|B|C|D)+">
<xsl:matching-substring>
<xsl:for-each select="regex-group(1)">
<letter><xsl:value-of select="." /></letter>
</xsl:for-each>
</xsl:matching-substring>
</xsl:analyze-string>
=>
<letter>A</letter>
<letter>B</letter>
<letter>C</letter>
<letter>D</letter>
但这似乎不可能,因为xsl:analyze-string
只保留组中捕获的最后一个值,所以实际输出只是:
<letter>D</letter>
一般问题是处理可能以未知顺序出现的已知值。