J'ai plusieurs ligne dans mon XML qui sont composées comme suit:
<ApplicationRoadRunnerRail ApplicationName="ApplRoadRunner" ApplicationVersionNumber="7.00.000" ApplicationStartDateTime="2023-10-12T18:17:23.68" ApplicationEndDateTime="2023-10-12T18:17:23.68" ApplicationNumber="12" RRPointID="BPGD-1987" RRCentreLineGrade="100.305283683917570" RRCentreLineHeight="24.996285" RRCentreLineRadius="500.000000" RRCentreLineTangent="184.130386194193190" RRCentreLineType="2" RRCurrentChainage="28.635574" RRCurrentDesignEasting="1412364.928714" RRCurrentDesignNorth="4193302.391685" RRCurrentDesignHeight="24.996285" RRHeightDiffCentreLine="0.055722" RRNearestTangentPoint="-1.612228" RRNearestVerticalTangentPoint="-1.215185" RROffsetCentreLine="-0.705451" RRStakeCheckHeightDiff="0.000000" RRStakeCheckOffset="0.000000" RRLayerName="Rail" RoadVerticalAlignmentSquareOffset="0.055721" RoadLengthVerticalAlignment="28.635426" RRRailJobName="2023-10-03_VF-Dev60" RailCurrentHeightDiffCant="-0.002517" RailCurrentOffsetCant="-0.705915" RailHeightDiffSelectedRail="0.055722" RailHeightDiffLeftRail="-0.004278" RailHeightDiffLowerRail="0.055722" RailHeightDiffRightRail="0.055722" RailHeightLowerRail="24.996285" RailNominalGauge="1.435000" RailOffsetLeftRail="0.011475" RailOffsetRightRail="-1.422377" RailOffsetSelectedRail="-0.705451" RailTask="Check Track" RailReflectorHtType="Plumbline" RailSelectedRail="Axe" RailDefSuperElvBase="1.500000" RailActCantDesign="0.060000" RailChainageCalculationMethod="Direct" RailDesignLeftRailClOffset="-0.716926" RailDesignLeftRailHeight="25.056285" RailDesignRightRailClOffset="0.716926" RailDesignRightRailHeight="24.996285" RailDesignCentreAxisClOffset="0.000000" RailDesignCentreAxisHeight="25.026285" RailDesignCentreLineEasting="1412364.928714" RailDesignCentreLineNorthing="4193302.391685" RailLowerRailName=""/>
j'avais fait ceci pour transformer le chiffre derrière la balise "@RRCentreLineType" en texte dans une colonne de mon fichier .csv de sortie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <xsl:template match="@RRCentreLineType">
<xsl:choose>
<xsl:when test="1">Straight</xsl:when>
<xsl:when test="2">Circle / arc</xsl:when>
<xsl:when test="3">Clothoid in</xsl:when>
<xsl:when test="4">Clothoid out</xsl:when>
<xsl:when test="5">Partial clothoid in</xsl:when>
<xsl:when test="6">Partial clothoid out</xsl:when>
<xsl:when test="7">Cubic in</xsl:when>
<xsl:when test="8">Cubic out</xsl:when>
<xsl:when test="9">Partial cubic in</xsl:when>
<xsl:when test="10">Partial cubic out</xsl:when>
<xsl:when test="11">Multipoint</xsl:when>
<xsl:when test="12">Quadratic parabola</xsl:when>
<xsl:when test="13">Bloss in</xsl:when>
<xsl:when test="14">Bloss out</xsl:when>
<xsl:when test="15">Partial Bloss in</xsl:when>
<xsl:when test="16">Partial Bloss out</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@RRCentreLineType"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
Avec une variaable déclarée comme ça :
1 2 3
| <xsl:variable name="clType">
<xsl:call-template name="CentreLineType"/>
</xsl:variable> |
ça ne focntionnait pas mais j'ai fais ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <xsl:template name="CentreLineType">
<xsl:choose>
<xsl:when test="@RRCentreLineType='1'">Straight</xsl:when>
<xsl:when test="@RRCentreLineType='2'">Circle / arc</xsl:when>
<xsl:when test="@RRCentreLineType='3'">Clothoid in</xsl:when>
<xsl:when test="@RRCentreLineType='4'">Clothoid out</xsl:when>
<xsl:when test="@RRCentreLineType='5'">Partial clothoid in</xsl:when>
<xsl:when test="@RRCentreLineType='6'">Partial clothoid out</xsl:when>
<xsl:when test="@RRCentreLineType='7'">Cubic in</xsl:when>
<xsl:when test="@RRCentreLineType='8'">Cubic out</xsl:when>
<xsl:when test="@RRCentreLineType='9'">Partial cubic in</xsl:when>
<xsl:when test="@RRCentreLineType='10'">Partial cubic out</xsl:when>
<xsl:when test="@RRCentreLineType='11'">Multipoint</xsl:when>
<xsl:when test="@RRCentreLineType='12'">Quadratic parabola</xsl:when>
<xsl:when test="@RRCentreLineType='13'">Bloss in</xsl:when>
<xsl:when test="@RRCentreLineType='14'">Bloss out</xsl:when>
<xsl:when test="@RRCentreLineType='15'">Partial Bloss in</xsl:when>
<xsl:when test="@RRCentreLineType='16'">Partial Bloss out</xsl:when>
<xsl:otherwise>""</xsl:otherwise>
</xsl:choose>
</xsl:template> |
Et là ça marche....
Mais je n'ai pas forcément le pourquoi du comment ...
Partager