une idee pour cette tranformation XSLT ?
Gregoire Cachet <[email protected]> Fri, 05 Mar 2004 18:50:23 +0100
| Newsgroups | gmane.comp.web.blogv2.devel |
|---|---|
| Message-ID | <[email protected]> |
salut,
je cherche a écrire une feuille de style XSLT pour faire le menage dans
les langues, mais je lutte un peu ...
en gros, je passe deux paramètres au moteur :
- LANG la langue voulue,
- DEFAULT_LANG la langue par defaut de l'application
voici ce que je veux faire :
- conserver toutes les balises dont la langue n'est pas spécifiée,
conserver les attributs des balises et les noeuds texte
- laisser les balises dont la langue est LANG, supprimer toutes les
autres langues (et virer les @xml:lang ils ne servent plus a rien)
- S'il n'y a aucune balise frère portant le même nom et ayant la langue
LANG, recuperer la balise frere du même nom qui a la langue DEFAULT_LANG
C'est sur ce dernier point que je butte ...
voici un exemple de XML a traiter :
<?xml version="1.0" encoding="UTF-8" ?>
<categorie id="truc">
<create-time>1077743684</create-time>
<parent>ROOT</parent>
<name xml:lang="fr">Nouvelle catégorie</name>
<name xml:lang="en">New category</name>
<name xml:lang="de">Neue Categorie</name>
</categorie>
voici ce que j'ai deja dans mon XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:param name="DEFAULT_LANG" />
<xsl:param name="LANG" />
<xsl:template match="/">
<xsl:apply-templates select="*[lang($LANG) or not(@xml:lang)]" />
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="*[lang($LANG) or not(@xml:lang)] |
@*[name() != 'xml:lang'] | text()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Quelqu'un a-t-il une idée pour traiter ce dernier point ?
--
Grégoire Cachet - Développeur intégrateur chez Audacy
http://www.zwiffer.org http://www.audacy.fr