我需要转换此数据:
经度8-55,810,经度为8.93016666获得了这种转变:
在xslt 1.0中我:
<!-- 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,'-')"/>
现在我需要将&#39; 55.810&#39;(字符串)转换为数字并除以60(在&#39;之后只有8个字符,&#39;)。
答案 0 :(得分:3)
看看这是否有帮助:
<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>