Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

XSL acces au nom des balises

marc, le lundi 29 août 2005 à 11:28:35 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un probleme très simple a resoudre, mais je n'ai pas trouvé la fonction adéquate...
J'ai un fichier xml de forme minimale:
<groupe titre="" montant="">
<groupe titre="" montant="">
<atome>
<Code></Code>
<Designation></Designation>
<Unite></Unite>
<Quantite></Quantite>
<PrixUnitaire></PrixUnitaire>
<Montant></Montant>
</atome>
</groupe>
</groupe>

sachant qu'un "groupe" contient soit des "groupe" soit des "atome".

Je désire effectuer un test (récursif) <xsl:if > sur le type de balise.
en pseudo langage:
pour chaque "groupe" (inclu tous les descendants),
si il n'existe pas d'enfant "atome", alors ...
sinon ...

Mon probleme réside dans le fait que je n'arrive pas a faire le test sur la balise "atome" en elle meme. J'ai essayé avec xsl:node-name, mais je n'ai pas réussi...

Merci d'avance pour vos réponses,
Marc

1

teebo, le lundi 29 août 2005 à 12:51:16

Salut, je comprend sans doute pas bien le problème...

tu fais un pour chaque groupe/atome
et après pour référencer ton groupe tu utilises ../
Non? No Kangaroos in Austria

Répondre à teebo

2

marc, le lundi 29 août 2005 à 13:27:07

Effectivement, ce que tu me suggeres fonctionnent bien, mais ce n'est pas exactement ce dont j'ai besoin.

En fait, j'ai un fichier xml (celui que j'ai détaillé plus haut) dont les données sont à inclure dans un autre fichier xml avec des balises précises. Ce que je fais, c'est que je construis le second fichiers xml en appliquant une xslt sur le 1er.
Mon probleme est donc le suivant:
les "groupe" doivent s'imbriquer les uns dans les autres, et lorsque le dernier groupe ne contient que des "atome", je dois inclure les données relatives à l' "atome" dans des balises spécifiques.

ex: mon 2nd fichier xml doit ressembler à ca:
<balise1 id="titre du groupe parent">
<balise1 id="titre du groupe fils">
<balise2>
<balise3>Prix Unitaire:3.00</balise3>
<balise4>code:14584 </balise4>
</balise2>
</balise1>
</balise1>

les balises1,2,3 me sont imposées. Il s'agit en fait du principe des poupées russes... C'est pourquoi je pensais avoir besoin du "if", pour tester le type de noeud (groupe ou atome):
si l'enfant est un groupe, alors ecrire balise 1
sinon, ecrire balise2.
Donc mon probleme est double: recuperer le nom des balises, et réussir à insérer le contenu de "atome" dans la derniere balise2...

Est-ce maintenant plus clair maintenant teeboo?
vois tu une maniere de regler le probleme?

Répondre à marc

4

random, le lundi 29 août 2005 à 13:51:59

Supposons une hiérarchie de niveau 3 maxi
je demande le tri par niveau 1 2 3

pére fils atome
* * *
père pasnull fils pas null atome pas null je peux diriger vers atome
* *
ici atome est null je suis dans un groupe fils
etc...
pas certain d'avoir compris

elle est pas belle, la vie ?

Répondre à random

3

marc, le lundi 29 août 2005 à 13:46:19

De maniere encore plus simple:

pour chaque "group", faire:
si les enfants sont des "groupe", alors boucler
si les enfants sont des "atome", alors insérer balise2..

dans ce cas, je ne sais pas trop comment faire pour reboucler. J'ai testé apply-templates, sans succès...

Répondre à marc

5

 teebo, le lundi 29 août 2005 à 16:07:35

Ben pour chaque élément tu apply-template groupe et pour les atomes celui d'atome, ça devrait marcher non?
No Kangaroos in Austria

Répondre à teebo
[xsl]imbrication de balise Bonjour, j'ai un problème avec l'imbrication de balise en xsl. je m'explique : j'ai un fichier xml comme suis : 1 Menu 1 2... www.commentcamarche.net/forum/affich-12026158-xsl-imbrication-de-balise
Nom ambigu détecté sous Access (Résolu) URGENT Bonjour, Merci de m'aider à résoudre un problème sous Access 2000 (pour info, je suis en phase de création d'une BDD). Dans un formulaire, j'ai souhaité ajouter un bouton de commande (dirigé vers 1 Sous formulaire). J'ai fait plusieurs essai,... www.commentcamarche.net/forum/affich-4498431-nom-ambigu-detecte-sous-access
[XSL]: acces au variable Bonjour, je debutte en XML et j'ai du mal avec les acces aux variable. je voudrais mette un lien dans une variable que je desir recupérer en plusieurs endroit de mon script. Mais visiblement la variable n'est pas accessible. ... www.commentcamarche.net/forum/affich-1453261-xsl-acces-au-variable
Prendre un nom de domainePrendre un nom de domaine pour son entreprise Un nom de domaine est une adresse Internet qui permet d'accéder à un site web. C'est un nom alphabétique associé à une extension. L'adresse du site de votre entreprise prend la forme de : www.votre-nom... www.commentcamarche.net/faq/sujet-9244-prendre-un-nom-de-domaine
[Excel] Chemin et nom de stockage de feuille de calculIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre... www.commentcamarche.net/faq/sujet-962-excel-chemin-et-nom-de-stockage-de-feuille-de-calcul
Erreur #NOM? sur accessBonjour, J'ai fait un état sous access 2000 avec une formule de calcul qui fait appel à une variable saisi sur un formulaire : En fait, j'ouvre un formulaire dans lequel je saisi une date de début et une date de fin et un coefficient en validant par... www.commentcamarche.net/forum/affich-12436829-erreur-nom-sur-access
Supprimer écran d'accueil nom utilsateur (Résolu)Bonjour, je travaille sur windows XP2 sur un SONY VAIO j'en suis le seul utilisateur et je voudrais savoir comment supprimer l'écran d'invite du nom utilisateur qui s'affiche à chaque démarrage de windows. Merci. www.commentcamarche.net/forum/affich-2344608-supprimer-ecran-d-accueil-nom-utilsateur
Forum BBcode BaliseBonjour j'aimerais savoir sur un forum qui accepte le BBcode mais pas le HTML comment on peut faire pour faire un lien comme dans une faq? exemple : On clique ici il y a un peu de texte sa vous ramene la (c'est pas grave si il faut faire plusieurs... www.commentcamarche.net/forum/affich-455449-forum-bbcode-balise
Télécharger EMule Acceleration PatcheMule Acceleration Patch est un accélérateur de téléchargement pour Emule, comme son nom l'indique d'ailleurs. Attention toutefois, n'espérez rien de plus que la vitesse maximale que votre ligne puisse supporter suivant la bande passante allouée par... www.commentcamarche.net/telecharger/telecharger-34059311-emule-acceleration-patch
Télécharger Acceleration PackComme son nom l’indique, ce logiciel est fait pour optimiser votre système. Il comprend 6 programmes qui rendra votre PC plus rapide : Evrox et Accelerweb prend en charge votre connexion Internet, NitroRAM augmentera la stabilité du système et... www.commentcamarche.net/telecharger/telecharger-34060067-acceleration-pack
Mise en page de XML avec XSLIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML.... www.commentcamarche.net/contents/xml/xmlxsl.php3
Webmastering - Nom de domaineQu'est-ce qu'un nom de domaine ? Un site internet est défini par son URL. Ainsi, un site hébergé par un hébergeur gratuit (par exemple un fournisseur d'accès à internet) possède généralement une adresse du type : http://www.votre... www.commentcamarche.net/contents/web/webdomain.php3
Accès aux données avec JDBCAccès aux données Une fois la connexion à la base de données établie, il est possible de demander des informations sur le nom des tables et le contenu de chaque colonne, ainsi que d'exécuter des requêtes SQL afin de récupérer des informations, d'en... www.commentcamarche.net/contents/jdbc/jdbcacces.php3