|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2003 Messages : 24 ![]() |
Hello,
Pour rendre "dynamique" la sortie HTML, je dois dans mon cas précis fournir une présentation dépendante des données et de l'utilisateur... j'utilise l'affectation dans le contexte de la variable XMLC_XSLFile de manière à créer autant de fichiers XSL qu'il m'en est nécessaire... Jusqu'ici tout va bien... Je désire maintenant customiser la présentation et donc mon fichier XSL, et je cherche la solution pour qu'en Delphi je puisse affecter par exemple l'attribut correspondant au titre de la page HTML... Meric de votre aide LLaurent |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Pour customiser ton html généré, il faut que tes données XML soient différentes pour que ton XSL puisse les utiliser et faire une transformation différente d'un coup sur l'autre.
Pour écrire dans le document XML depuis delphi, tu as plusieurs options : - Mettre des données dans le Context par code (Context.Values['Nom'] := Value - Manipuler directement le document XML par code dans Delphi avec le XMLCursor OutputDoc. Plus compliqué, moins souple et obligation de recompiler ta DLL pour modifier les données. Une fois que toutes les données sont présentes dans le XML, ton XSL y aura accès et tu pourras modifier l'aspect de ton HTML...
__________________
Nicolas |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2003 Messages : 24 ![]() |
Merci Nicolas,
OK pour tes commentaires... Aujourd'hui, je désire changer complétement de style de présentation et donc je dois "tailler" dans mon fichier XSL... Aussi, je dois éventuellement rajouter des éléments, etc... mais là où je coince c'est sur certains attributs. 'par exemple' le titre de ma nouvelle page... D'avance Merci |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
pourquoi ne pas faire un XSL par style différent ?
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : février 2003 Messages : 24 ![]() |
Ce serait une solution simple,
mais c'est trop simple, dans mon cas puisque je dois effectuer des requêtes dynamiques non pas au sens du contenu (comme habituel) mais au sens des propriétés sélectionnées : SELECT P1, P2, P3 from Table1, Table2... ou SELECT Px, Py, Pz from Container1, Container2.... ou ... Donc, je dois construire des fichiers XSL dépendant de la demande de l'utilisateur... Merci pour vos réponses Laurent |
|
|
00
|
|
|
#6 | ||
|
Membre éclairé
![]() |
XSL est sensible aux données, à toi de jouer pour faire en sorte que tes templates match soit appliquées ou non. Tu peux créer plusieurs templates portant le meme nom, avec un mode particuliers par exemple, ou encore mettre dans le match="" une condition dans le XPath (le match ne correspond pas à un nom d'element seulement, c'est en fait du XPath).
Tu peux aussi utiliser des xsl:if, xsl:choose, etc, pour modifier le comportement à l'affichage. D'après ce qu'on voit dans les applis Delos, ils préfèrent faire un seul XSL, qui peut etre assez compliqué, plutot que plein de XSL qui reprendront tous les memes templates avec quelques differences. Ca permet de ne pas avoir à maintenir de multiples fichiers à chaque fois qu'il y a une modification... Faut que tu travailles tes skills en XSL, donc Pour tes extractions SQL, tu peux utiliser des "Templates Properties" dans le XMLGram. C'est une fonctionnalité avancée, pas vraiment documentée. Il suffit d'insérer dans ta requète SQL des variables du type {$Name}, où Name est un champ du Context. La valeur de ce champ sera prise et remplacé directement. Par exemple : SELECT PSN_ID, PSN_NAME FROM PERSON {$ORDER_CLAUSE} Par code tu taperas : Code :
__________________
Nicolas |
||
|
|
00
|
|
|
#7 | ||
|
Invité régulier
![]() Inscription : février 2003 Messages : 24 ![]() |
Merci Nicolas,
Surtout pour la solution de paramétrage de des "Templates Properties" dans le XMLGram, ça va certainement me servir beaucoup... D'autant que je réalise le paramétrage des extractions SQL sous Delphi Mais mon problème initial reste la customisation d'un fichier XSL de base... Aujourd'hui, je le charge lors de la fonction AfterXMLGram de ce service et je recompose le fichier XSL comme suit : Code :
Alors j'aimerai donc changer certains attributs de mon fichier XML ou XSL, afin de recomposer le fichier XSL attendu... |
||
|
|
00
|
|
|
#8 | |
|
Membre éclairé
![]() |
euh...
Je vois pas du tout pourquoi tu utilises ce genre de techniques... On n'a jamais besoin de faire de la modification du fichier XSL, puisqu'il est prévu à la base pour ca. Ce que tu fais, c'est équivalent à créer par code le HTML directement, au lieu de le faire faire par le XSL. Pour le premier exemple Citation:
Code :
...="Title">Resultat: <xsl:value-of select="/document/QueryInfo/QueryLabel" /></...
Pareil pour le colspan... Ton NbShown doit provenir d'un nombre extrait de la base ou calculé... il te suffit de faire dans le XSL Code :
...<td><xsl:attribute name="colspan"><xsl:value-of select="/document/Params/Colspan"/></xsl:attribute></td>
Il ne faut pas oublier que XSL est sensible aux données, et transforme un XML vers un autre format. Si les données ne sont pas dans le XML, le XSL ne pourra rien y faire. A chaque fois qu'on est bloqué en XSL, ca signifie simplement que le XML n'est pas bien fait ou pas complet...
__________________
Nicolas |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com