以下のスニペットでは、欠落している数字を所定の順序で出力します。小数点以下はうまく機能しますが、科学的表記(1.6646144E7など)では機能しません。 これを修正するには?科学記法と数字のシーケンス
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
<xsl:template match="/">
<xsl:variable name="OriginalSequence">16646145 1.6646144E7 16646149 1.6646148E7 16646151 1.664615E7 16646163 1.6646162E7</xsl:variable>
<!--<xsl:variable name="OriginalSequence">1 2 8 2 3</xsl:variable>-->
<xsl:variable name="seq1" as="xs:integer*" select="for $s in $OriginalSequence/tokenize(normalize-space(.), '\s+') return xs:integer($s)"/>
<xsl:variable name="seq2" as="xs:integer*" select="min($seq1) to max($seq1)"/>
<xsl:variable name="seq3" as="xs:integer*" select="$seq2[not(. = $seq1)]"/>
<missing><xsl:value-of select="$seq3"/></missing>
</xsl:template>
理想の出力リレー:
<missing>16646145 16646146 16646147 16646152 16646153 16646154 16646155 16646156 16646157 16646158 16646159 16646160 16646161</missing>
変数originalSequenceは私のオリジナルXSLTで演算の出力は、私はに変換しないxslt2.0を伝えることができるかどうかわからないです科学的表記法?
算術演算は何を計算しますか? 'xs:integer'sのシーケンスですか?あるいは 'xs:double's?どのように正確に見えるのですか? –