Page 1 sur 1

Comment éviter les noms de balises à rallonge ?

Posté : 14 janv. 2006, 15:55
par Discret
Bonjour à tous.

Dans le but de séparer complètement le traitement des données et l'affichage, je procède de la manière suivante:

Mon script cré une chaine contenant la description xml de ma page. Je charge le fichier xsl du thème choisi, et j'affiche le html.

Mon xml ressemble donc à ceci: (en très réduit)

Code : Tout sélectionner

<page> <page_titre>Mon titre</page_titre> <module> <module_titre>Titre du module</module_titre> <formulaire> ... </formulaire> </module </page>
Mon problème est d'essayer d'éviter des noms de balises à rallonge.
Par exemple <page_titre> et <module_titre> pourraient s'appeller simplement <titre>. Mais dans ce cas, ils seraient traités de la même manièr en xsl. Par exemple:

Code : Tout sélectionner

<xsl:template match="titre"> <h1 class='maclasse'><xsl:apply-templates select='.' /></h1> </xsl:template>
Hors, je ne veux pas qu'ils soient traités par le même template.

Y a-t-il un moyen de considérer différemment une balise en fonction d'un ancetre existant ? Ou existe-t-il une meilleure manière de procéder ?

Merci de votre aide.

Posté : 14 janv. 2006, 16:17
par Discret
Je vais préciser mon problème.

Ma page contenu un certain nombre d'élements (menu, modules, ...). Chacun est géré par une classe dont une méthode fourni une chaine contenant son code xml.

J'aimerais simplifier autant que possible la création d'un élement. Pour cela, l'idéal serait des noms de balises très courts. mais comment ensuite incorporer ce xml dans un code plus grand ?

Actuellement, lorsqu'un module me founit son xml, avant de l'incorporer dans le code, j'utilise des expressions régulières pour modifier le nom des balises, levant l'ambiguité pour des noms à rallonge. L'inconvénient est que les balises n'ont pas le même nom dans les modules et les fichiers xsl. Est-il possible de faire cela plus proprement ? Par exemple en utilisant les espaces de noms, mais je n'ai pas réussi à trouver comment.