From:
Date: 27/11/2003 - 16:50
Bonjour,
je rencontre un petit souci dans l'écriture d'une XSLT.
Voici tout d'abord l'allure des fichiers XML à traiter :
<?xml version="1.0" encoding="iso-8859-1"?>
<service name="Z">
<defaults>
<node name="a">
<comment>Accueil</comment>
<product name="b">
[...]
</node>
[...]
</defaults>
<node name="a">
<comment>Accueil</comment>
<product name="b">
[...]
</node>
[...]
</service>
Les éléments "node" se trouvant hors de l'élément "defaults" comportent des
contenus textuels potentiellement vides. Il me faut produire un document XML
sans l'élément "defaults", en renseignant les éléments "node" avec les valeurs
trouvées dans l'élément "defaults" en cas de contenu vide dans un élément.
Je pourrais faire ça de manière complétement cablée sans trop de soucis, mais...
je préférerais faire ça de façon plus "générale".
Je suppose que lorsqu'on se trouve dans un template, on peut reconstruire un
chemin qui permet de mener au contexte local (par exemple, dans un template qui
matcherait "node", on pourrait produire /service/node[1]). Par contre, je doute
fortement qu'on puisse manipuler ce chemin pour aller récupérer
/service/defaults/node.
Je suppose que ma démarche est "bancale", mais je ne sais pas comment écrire quelque
chose de *réutilisable*.
J'ai pris comme exemple l'élément "node", mais il y a une dizaine d'éléments
différents possibles, eux-mêmes possédant d'autres éléments, etc, etc...
Si je veux tout cabler, ça sera long et je risque fort de faire des erreurs :-(
De plus, si on ne trouve pas de valeur par défaut, il faut aller en chercher
une autre dans un autre document XML, en appliquant le même mécanisme.
Bref, sauriez-vous me conseiller une technique qui a des chances de fonctionner,
tout en m'évitant l'écriture de template pour chaque élément/sous-élément?
Merci d'avance.
Bruno Verachten
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|