Bonjour,

cela fait quelques jours que je me croque le cerveau sur ce problème et je décide donc de me tourner vers vous tous.

Je dispose de fichiers XML comprenant, entre autres, les données suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<word id="a01-000u-00-01" tag="NN" text="MOVE">
        <cmp x="507" y="768" width="63" height="46" />
        <cmp x="568" y="770" width="56" height="41" />
        <cmp x="631" y="768" width="38" height="41" />
        <cmp x="676" y="772" width="31" height="36" />
        <cmp x="691" y="766" width="29" height="12" />
</word>
que je dois transformer en

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<WORD><BBW>507,766,720,814</BBW><LABEL>MOVE</LABEL></WORD>
le 507 est le min des x, le 766 le min des y, le 720 le max des sommes x+width pour chaque composante, et le 814 le max des y+height.

j'ai réussi à obtenir les 507 et 766 comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xsl:variable name="X1">
<xsl:for-each select="cmp/@x">
    <xsl:sort data-type="number" order="ascending"/>
    <xsl:if test="position() = 1">
        <xsl:value-of select="number(.)"/>
    </xsl:if>
    </xsl:for-each>
</xsl:variable>
(et de même pour y avec cmp/@y)

En revanche, je n'arrive pas à sortir la somme
j'ai testé de mettre <xsl:for-each select="cmp/@x + cmp/@width">, mais il n'apprécie pas du tout ^^
j'avais pensé faire 2 variables, les sommer, en faire une liste, puis les organiser et prendre celui qui m'interessait, mais je n'arrive pas à l'implémenter.

On m'a suggéré d'insérer du code C dans tout ça, mais c'est pas vraiment quelque chose que je sais faire ^^'

Si l'un de vous a une idée/solution...
Merci bien ^^

PS: je code sous XMLSpy 2007