Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

[XML et XSLT] Tester si une chaîne est un chemin XML valide

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
hibou57
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Nov 2006
Messages: 132
Localisation: Europe

URL permanente de ce messagePosté le : Mer Jan 16, 2008 3:14    Sujet du message: [XML et XSLT] Tester si une chaîne est un chemin XML valide

Bonsoir,

Heuuuu.... je vous dit tout de suite, je ne suis pas trés sûr que ce soit l'endroit pour poser ce type de question, alors ne soyez pas trop méchant(e)s avec moi. Peut-être que j'aurais dut voir un forum plus spécialisé, je ne sais pas.... mais puisqu'ici on peut parler de programmation web, alors si on peut parler aussi de celle qui implique XML+XSLT ou même d'autres joyeusetés, ça me ferait plaisir, parce que tant qu'à faire, j'aime mieux pouvoir le faire ici plutôt qu'ailleurs.

Bref, je ne sais pas s'il y a beaucoup d'utilisateur(rice)s de XSLT ici, mais s'il y en a quelques-un(e)s, alors je veux qu'on ouvre un p'tit club, et je veux bien participer à répondre aux questions sur le sujet (autres que les miennes lol)... mais pour l'instant, c'est moi qui a un big problème Very Happy

Bon, j'y va ....

Je me demande si des gens connaissent un moyen simple et directe de tester si une chaîne de caractères est un chemin XML valide, dans le contexte d'un traitement XSLT.

Je prend un exemple : un élément a un attribut, disont "name", et cet attribut name, peut prendre soit une valeur chaîne, soit un chemin XML, et selon le cas, le traitement effectué par la feuille XSLT devrait être différent.

Je prend un exemple concrêt, pour être plus clair, et tout autant pour donner un exemple de cas où cela peut être utile.

Soit le fragment suivant :
Code:

<chapter id="thisone">
    <icon name="thisone"/>
</chapter>


On voit que deux attributs sont identiques. Je voudrais que dans ces cas là, pour éviter les erreurs, je puisse explicitement dire dans la source que l'attribut "name" de l'élément "icon", c'est la valeur de l'attibut "id" de l'élément "chapitre" dans lequel il se trouve (je dis bien, dans le source XML, pas dans le XSLT).

Et donc j'aimerais écrire quelque chose comme
Code:

<chapter id="thisone">
    <icon name="../@id"/>
</chapter>


Et dans le cas où l'attribut serait un chemin, alors la feuille XSLT s'en servirait pour aller repécher la valeur à la source ainsi désignée, plutôt que d'utiliser la valeur de l'attribut tel-quel (comme on le fait normalement).

Est-ce que vous voyez ce que je veux dire ?

Mais pour que cela fonctionne, il faudrait que la feuille XSLT puisse savoir si la chaîne n'est qu'une chaîne ou si elle est un chemin XML (comme un chemin XML est aussi une chaîne de caractère, dans le cas de cet exemple, on supposera que un "id" ou un "name" ne doivent jamais être ambigüs dans ce contexte, et donc par exemple ne jamais avoir comme valeure le nom d'un élément du document).

Est-ce qu'il existe un prédicat XSLT qui permet de tester si une chaîne est un chemin XML valide ? Sans faire planter le traitement ?

Je pourrais le faire en utilisant deux attributs différents, et tester la présence de l'un ou l'autre attribut (par exemple faire que l'élément "icon" puisse avoir soit un attribut "name", soit un attribut "name-source", par exemple). Mais je préfère, si c'est possible, le faire avec un seul attribut... d'où la question du teste.

Marci les gens Smile
 
hibou57 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort