xslt - 在 XSLT 中将十六进制数转换为整数

标签 xslt

我需要将十六进制值转换为整数值,我该如何使用 XSLT 做到这一点?

例如,如果输入是十六进制 FF ,我的输出应该是 255。

最佳答案

在纯 XSLT 1.0 中将十六进制转换为十进制:

<xsl:template name="hex2num">
    <xsl:param name="hex"/>
    <xsl:param name="num" select="0"/>
    <xsl:param name="MSB" select="translate(substring($hex, 1, 1), 'abcdef', 'ABCDEF')"/>
    <xsl:param name="value" select="string-length(substring-before('0123456789ABCDEF', $MSB))"/>
    <xsl:param name="result" select="16 * $num + $value"/>
    <xsl:choose>
        <xsl:when test="string-length($hex) > 1">
            <xsl:call-template name="hex2num">
                <xsl:with-param name="hex" select="substring($hex, 2)"/>
                <xsl:with-param name="num" select="$result"/>
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$result"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

关于xslt - 在 XSLT 中将十六进制数转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22905134/

相关文章:

XSLT - 如何使用 xsl 引用当前节点值 :choose?

xml - 如何编写 xpath 以匹配除特定元素之外的所有元素

xslt - 如何使 xsl 转换缩进输出?

xml - 检查模板 P 中节点的名称是否为 Fox

node.js - NodeJs XSLT 转换

xml - 如何指定 "Custom Tool"以在 VS2010 中转换文件?

java - 如何强制 XSLT 结果树使用特定的默认命名空间进行序列化?

使用 XSLT 3.0 的 JSON 到 XML - 如何加载 JSON 源并调用 json-to-xml 函数?

css - RSS 不在 Chrome 中显示

java - XML-XSLT : How to compare two dates which are in String