Je voudrais avoir une liste triée en ignorant les articles définitifs/indéfinis initiaux 'the' et 'a'. Par exemple:En ignorant 'A' et 'The' lors du tri avec XSLT
- La Comédie des erreurs
- Hamlet
- A Midsummer Night de rêve
- Douzième Nuit
- Tale Hiver
Je pense que peut-être dans XSLT 2.0 cela pourrait être réalisé sur le modèle de:
<xsl:template match="/">
<xsl:for-each select="play"/>
<xsl:sort select="if (starts-with(title, 'A ')) then substring(title, 2) else
if (starts-with(title, 'The ')) then substring(title, 4) else title"/>
<p><xsl:value-of select="title"/></p>
</xsl:for-each>
</xsl:template>
Cependant, je veux utiliser le traitement dans le navigateur, donc je dois utiliser XSLT 1.0. Y a-t-il un moyen d'y parvenir dans XLST 1.0?
En général, la bonne approche pour cela est de stocker un "titre de tri" pour chaque élément, étant donné que les règles peuvent devenir très complexe et même s'étendre dans d'autres langues (par exemple "Die" est un article et devrait être ignoré en allemand, mais "Die Hard" ne devrait pas être trié sous "H", même s'il se trouve dans un index germanophone). Le titre de tri de "A Midsummer Night's Dream" serait "Midsummer Night's Dream, A". –
Je devrais avoir mentionné, starts-with() est disponible en XLST 1.0, mais si-alors-else n'est pas ... – ChrisV
@Joachim - vous avez raison, mais je dois travailler avec des données existantes, il n'y a pas de ressources à maintenir un champ de tri parallèle; La solution rapide-n-sale de Gart est juste ce dont j'ai besoin - bon commentaire, bien que – ChrisV