XML Exemple:tri alphabétique avec XSLT
<term>
<name>facies</name>
<translation language="en">facies</translation>
<definition><num>1.</num> cara <num>2.</num> superficie externa, superficie anterior</definition>
</term>
<term>
<name>factores angiógenos</name>
<translation language="en">angiogenic factors</translation>
<definition>descripción de sustancias que favorecen el desarrollo o la formación nueva de vasos sanguíneos</definition>
</term>
<term>
<name>factores de la coagulación</name>
<translation language="en">coagulation factors</translation>
<definition>la cascada de la coagulación de la sangre consta de 12 factores en total, todos ellos necesarios para que funcione bien</definition>
</term>
J'ai un fichier XSLT qui fait une liste des noms mis en correspondance avec le nom, et une traduction si l'on existe.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="terms">
var allwords = [
<xsl:for-each select="letter">
<xsl:for-each select="term">
<xsl:call-template name="term"></xsl:call-template>
</xsl:for-each>
</xsl:for-each>
['','']
];
</xsl:template>
<xsl:template name="term">
['<xsl:value-of select="name"/>', '<xsl:value-of select="name"/>'],
<xsl:if test="name!=translation">
['<xsl:value-of select="translation"/>', '<xsl:value-of select="name"/>'],
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Cela fonctionne très bien, produisant ce qui suit
var allwords =
[ ['facies', 'facies'],
['factores angiógenos', 'factores angiógenos'],
['angiogenic factors', factores angiógeno],
['factores de la coagulació', 'factores de la coagulació']
etc...
Cependant, comme vous pouvez voir la première partie du tableau est pas dans l'ordre alphabétique plus, en raison de l'ajout du mot anglais .
Il doit être dans l'ordre alphabétique, dans ce cas « facteurs angiogéniques » serait le premier élément du tableau
Toutes les idées?
Aucun de ces modèles ne correspond à votre schéma. Aussi "for-each" n'est pas l'élément approprié pour ce que vous essayez de faire - "apply-templates" est la construction pertinente. – Ishmael