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 :
que je dois transformer en
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>
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <WORD><BBW>507,766,720,814</BBW><LABEL>MOVE</LABEL></WORD>
j'ai réussi à obtenir les 507 et 766 comme ceci:
(et de même pour y avec cmp/@y)
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>
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
Partager