对我来说是必要的:
经度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>