Bonjour,
Quel est exactement l'objectif recherché ?
>Je ne sais pas encore si ce sera possible, car le but est de faire un
>tableau HTML avec une ligne d'entête.
Qu'est-ce que vous entendez par ligne d'entête ?
> NoeudRoot
> NoeudMulti
> Valeur1
> Valeur2
> Valeur3
> NoeudMulti11
> Valeur1
> Valeur2
> NoeudMulti12
> Valeur1
> Valeur2
> ....
>
>J'ai du mal à pouvoir recreer les lignes du style
>NoeudMulti|Valeur1|Valeur2|Valeur3|NoeudMulti11|Valeur1|Valeur2
Pouvez-vous donner le résultat attendu pour les premières lignes ? Y compris le code html parce qu'on (je) ne saisit pas si le | symbolise un <td> ou une concaténation des différents name() pour aboutir à un "identifiant".
Un présentation arborescente ne suffit-elle pas pour votre besoin ?
Si dessous une (mauvaise) adaptation du code de MR pour une présentation verticale.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Windows-1252"/>
<xsl:template match="/*">
<html>
<style type="text/css">
.FERME {background-color:#BBBBCC; font-family: Verdana; font-size: 8pt; cursor:pointer;}
.OUVERT { background-color:#EEF3FB; font-style:blod;font-family: Verdana;
font-size: 8pt; cursor:pointer;}
.DERNIER { font-style:blod;font-family: Verdana; font-size: 8pt;}
.VALEURNOEUD { background-color:#FFFFCC; font-family: Verdana; font-size:
8pt;}
.ATTRIBUT {color:#999999;}
</style>
<script language="javascript">
function affiche_cache(objet){
ObjetCible=objet.parentNode.nextSibling;
if (ObjetCible.style.display=="none"){
ObjetCible.style.display="block";
objet.className="OUVERT";
}
else{
ObjetCible.style.display="none";
objet.className="FERME";
}
}
</script>
<body>
<xsl:apply-templates select="*"/>
</body>
</html>
</xsl:template>
<xsl:template match="*">
<table border='1' style="margin-left:15px">
<tr>
<td><b> <xsl:value-of select="name()"/></b>
(<span class="ATTRIBUT"><xsl:for-each select="@*"><b><xsl:value-of select="name()"/></b> : <i><xsl:value-of
select="."/></i>  </xsl:for-each></span>)
</td>
</tr>
<xsl:if test="*">
<tr>
<td>
<xsl:apply-templates select="*"/>
</td>
</tr>
</xsl:if>
</table>
</xsl:template>
</xsl:stylesheet>
-----Message d'origine-----
De : Lasserre Lionel [mailto:llasserre@gfi.fr]
Envoyé : vendredi 2 décembre 2005 17:16
À : xml-tech@xmlfr.org
Objet : [xml-tech] XML To HTML
Merci de l'aide, j'avance doucement, car effectivement il ne semble pas simple de présenter les éléments verticalement.
j'ai reussit à faire un tableau avec un XML simple style NoeudRoot
NoeudMulti
Valeur1
Valeur2
Valeur3
qui devient
NoeudMulti|Valeur1|Valeur2|Valeur3
Par contre si je me retrouve avec
NoeudRoot
NoeudMulti
Valeur1
Valeur2
Valeur3
NoeudMulti11
Valeur1
Valeur2
NoeudMulti12
Valeur1
Valeur2
....
J'ai du mal à pouvoir recreer les lignes du style
NoeudMulti|Valeur1|Valeur2|Valeur3|NoeudMulti11|Valeur1|Valeur2
NoeudMulti|Valeur1|Valeur2|Valeur3|NoeudMulti12|Valeur1|Valeur2
Car je n'arrive à a recuperer les differentes valeur des ancètres de NoeudMulti1?, Je recherche une solution et vous informes de la suite ...
Cdt
Lionel
Matthieu Ricaud a écrit :
>Bonjour,
>
>J'ai déjà eu l'occasion de faire cela, la xsl suivante est générique et
>affiche n'importe quel fichier xml sous la forme d'un tableau HTML avec
>en prime les attributs. Les cellules sont cliquables pour afficher les
>sous-noeud (c'est du javascript).
>
><?xml version="1.0"?>
>...</xsl:stylesheet>
>
>Il n'affiche pas les commentaires, ni les "processing-instructions" et
>puis ce serait peut être mieux que le tableau présente les élément
>verticalement plutôt qu'horizontalement...
>
>si vous l'améliorez, n'hésitez pas à en faire part :)
>
>Cordialement,
>
>Matthieu
>
>-----Message d'origine-----
>De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
>part de Lasserre Lionel Envoyé : mercredi 23 novembre 2005 15:36 À :
>xml-tech@xmlfr.org Objet : [xml-tech] XML To HTML
>
>
>Bonjour à tous,
>
>je cherche à transformer un fichier XML en tableau HTLM par XSLT, en
>tentant tant que faire se peut, de faire une XSLT générique (applicable
>à tous mes xml).
>
>Je ne sais pas encore si ce sera possible, car le but est de faire un
>tableau HTML avec une ligne d'entête.
>
>D'ou ma première question :)
>est il possible d'extraire le nom des noeuds et non pas leur valeur ?
>
>le but etant en partant d'un xml de type :
>
><root>
> <Exercice>
> ValeurExercice
> <Noeud1>
> ValeurNoeud1
> <SousNoeud1>ValeurSousNoeud1</SousNoeud1>
> <SousNoeud2>ValeurSousNoeud2</SousNoeud2>
> ...
> </Noeud1>
> ...
> </Exercice>
> ...
></root>
>
>de générer un Tableau html du type :
><table>
> <tr>
> <td>Noeud1</td><td>SousNoeud1</td><td>SousNoeud2</td> ...
> </tr>
> <tr>
>
><td>ValeurNoeud1</td><td>ValeurSousNoeud1</td><td>ValeurSousNoeud2</td> ...
> </tr>
> ...
></table>
>
>Si vous connaissais une xslt dejà existante .... ;>
>
>
>Merci d'avance .
>
>Lionel
>
>
--
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)
Received on Mon Dec 5 12:50:07 2005