Rechnen mit Vorgänger - Nachfolger
bearbeitet vonHallo whine,
> und ich versuche mittels XSLT die 179 von der 194 zu subtrahieren, die 194 von der 211 usw.
>
> Meine zaghaften Versuche in XSLT:
>
> ~~~xslt>
> <xsl:for-each select="M">
> <xsl:variable name="vorg" select="number(preceding-sibling::GRT_G)"/>
> <xsl:variable name="grt_g" select="number(GRT_G)"/>
> <xsl:variable name="dif_grt" select="$grt_g - $vorg"/>
> <xsl:value-of select="dif_grt"/>
> </xsl:for-each>
> ~~~
>
> Trotz number bekome ich in der Ausgabe NaN. Weiß jemand Rat?
~~~xslt
<xsl:for-each select="M">
<xsl:variable name="vorg" select="number(preceding-sibling::M[1]/GRT_G)"/>
<xsl:variable name="grt_g" select="number(GRT_G)"/>
<xsl:variable name="dif_grt" select="$grt_g - $vorg"/>
<xsl:value-of select="$dif_grt"/>
</xsl:for-each>
~~~
Die Achse bezieht sich auf den M-Vorgänger und zwar den jeweils ersten, also M[1] und darunter liegt das gesuchte GRT_G. Bei der Ausgabe via xsl:value-of fehlte noch das $-Zeichen.
Bei der ersten Abfrage kommt dennoch NaN, da kein Vorgänger vorhanden ist, alternativ $vorg z. B. so aufbauen:
~~~xslt
<xsl:variable name="vorg">
<xsl:choose>
<xsl:when test="preceding-sibling::M[1]/GRT_G">
<xsl:value-of select="number(preceding-sibling::M[1]/GRT_G)"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
~~~
Grüße,
Thomas