Xml XSL-如何在内部文本中插入数字字符<;sub></sub>;

Xml XSL-如何在内部文本中插入数字字符<;sub></sub>;,xml,xslt,Xml,Xslt,我在公式节点中有一个原始文本,例如: <formula>H2SO4</formula> H2SO4 我的问题是,如何匹配文本中的数字字符,并像这样变换字符串H2SO4 可以通过xsl转换吗?多谢 在XSLT 2.0中,您可以执行以下操作: <xsl:template match="formula"> <xsl:copy> <xsl:analyze-string select="." regex="\d+">

我在
公式
节点中有一个原始文本,例如:

<formula>H2SO4</formula>
H2SO4
我的问题是,如何匹配文本中的数字字符,并像这样变换字符串
H2SO4


可以通过xsl转换吗?多谢

在XSLT 2.0中,您可以执行以下操作:

<xsl:template match="formula">
    <xsl:copy>
        <xsl:analyze-string select="." regex="\d+">
            <xsl:matching-substring>
                <sub>
                    <xsl:value-of select="." />
                </sub>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="." />
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </xsl:copy>
</xsl:template>


您的处理器是否支持XSLT 2.0?我正在使用标准的OS X xsltproc命令,但也许我可以安装支持XSLT 2.0的SAXON,这可能不是一个问题。使用regex很容易,它需要XSLT 2.0.OK,但如何安装?:)真为你高兴。我很好奇你是怎么让萨克森在macOS终端工作的。还是你用了别的东西?