我有这个xml文件。
<?xml version="1.0" encoding="utf-8"?>
<racine>
<index>
<Parent nom="00000002" Name="" Address="" />
<Meter numSerie="00000002" />
<arrêté dateArrêté="28/02/2015 00:00:00">
<ValeurIndex Libelle="Val1">23.334</ValeurIndex>
<ValeurIndex Libelle="Val2">5.186</ValeurIndex>
<ValeurIndex Libelle="Val3">2.79</ValeurIndex>
</arrêté>
</index>
</racine>
我希望将其转换为txt文件,我需要在Val1和Val2之间添加一个值为max的新行,如下例所示。
Val1,23.334
Val2,5.186
Val3,2.79
MaxVal1Vl2,23.334
我创造的东西是:
<xsl:choose>
<xsl:when test="@Libelle = 'Val1'">Val1</xsl:when>
<xsl:when test="@Libelle = 'Val2'">Val2</xsl:when>
<xsl:when test="@Libelle = 'Val3'">Val3</xsl:when>
</xsl:choose>
<xsl:text>,</xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
如何添加4行作为Val1和Val2的最大值?
由于
答案 0 :(得分:1)
尝试:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>
<xsl:template match="/racine">
<xsl:for-each select="index/arrêté/ValeurIndex">
<xsl:value-of select="@Libelle"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:for-each>
<xsl:variable name="v1" select="index/arrêté/ValeurIndex[@Libelle='Val1']" />
<xsl:variable name="v2" select="index/arrêté/ValeurIndex[@Libelle='Val2']" />
<xsl:text>MaxVal1Vl2,</xsl:text>
<xsl:choose>
<xsl:when test="$v1 > $v2">
<xsl:value-of select="$v1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$v2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>