[XSLT] Transformation XML à XML
Bonjour,
Je suis débutant et je commence à découvrir le XSLT. Je suis entrain de transformer un fichier xml en un autre xml en utilisant xslt.
Dans mon fichier source j'ai quelque chose comme ça:
Code:
1 2 3 4
|
<ScalarVariable name="engine" valueReference="16780551" description="intake-exhaust coefficient" variability="parameter">
<Real min="0.0" max="20.0" start="6.18" fixed="true"/>
</ScalarVariable> |
Je veux le transformer sous la forme suivante :
Code:
1 2 3 4
|
Channel ident="engine" iRef="16780548" Repr="32">
<Properties Description="intake-exhaust coefficient" InitValue="6.18" />
</Channel> |
J'ai réussi à faire la transformation, sauf l'expression InitValue="6.18" qui correspond à start="6.18".
Mon xslt contient ce traitement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<xsl:for-each select="ScalarVariable">
<xsl:if test = "Real[@start]">
<Channel ident="{@name}" iBase="{@valueReference}" Repr="32">
<xsl:value-of select="name"/>
<xsl:value-of select="valueReference"/>
<Properties Description="{@description}" InitValue="????????"/>
<xsl:value-of select="description"/>
</Channel>
</xsl:if>
</xsl:for-each> |
J'ai essayé plusieurs méthodes sans réussir. Je suis sûr que la solution n'est pas compliquée. J'ai appliqué un for-each pour parcourir les noeuds de type Real et extraire ma valeur start mais malheureusement dans ce cas je perds mes données qui sont sous ScalarVariable. :?
Une idée, un commentaire?
Merci par avance.