将Xslt 1.0字符串转换为数字



对我来说是必要的:

经度8-55,810到经度8.93016666

这个变换得到:

  • 8为整数部分,保持不变;
  • 后面的第二部分。60
  • 得到红利55,810

在xslt 1.0中I:

<!-- Declared a variable longitudine es. 8-55,810-->
<xsl:variable name="lon" select='LONGITUDE'/>
<!-- I put in a variable the part after '-' es. 55.810 -->
<xsl:variable name="partemobilelon" select="substring-after($lon,'-')"/>

现在对我来说是必要的转换'55.810'(字符串)为数字并除以60(','后只有8个字符)

看看是否有帮助:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="longitude" select="'8-55,810'" />
<xsl:template match="/">
    <output>
        <xsl:param name="int" select="substring-before($longitude, '-')" />
        <xsl:param name="dec" select="translate(substring-after($longitude, '-'), ',', '.')"/>
        <xsl:value-of select="$int + $dec div 60" />
    </output>
</xsl:template>
</xsl:stylesheet>

编辑:

结果进行四舍五入,请尝试:

<xsl:template match="/">
    <output>
        <xsl:param name="int" select="substring-before($longitude, '-')" />
        <xsl:param name="dec" select="translate(substring-after($longitude, '-'), ',', '.')"/>
        <xsl:param name="num" select="$int + $dec div 60" />
        <xsl:value-of select="round($num * 100000000) div 100000000" />
    </output>
</xsl:template>

或只是:

<xsl:template match="/">
    <output>
        <xsl:param name="int" select="substring-before($longitude, '-')" />
        <xsl:param name="dec" select="translate(substring-after($longitude, '-'), ',', '.')"/>
        <xsl:value-of select="format-number($int + $dec div 60, '0.########')" />
    </output>
</xsl:template>

相关内容

  • 没有找到相关文章

最新更新