Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: inclure du code HTML dans une XSL

[xml-tech] Re: inclure du code HTML dans une XSL

Auteur: Stephane Bonhomme <s.bonhomme@wanadoo.fr>
Date: 11/01/2005 - 09:47
X-Mailer: Evolution 2.0.3

La solution que vous envisagez fonctionne, mais je vous conseille de
quand même conserver la source de vos headers et footer dans un fichier
xhtml (plus facile à gérer avec des outils d'édition), personnellement
je n'utilise pas les tableaux (mais des div, plus faciles à utiliser
avec css), mais la méthode est également applicable à ceux-ci. Je me
base sur l'attribut xhtml class pour identifier le contenu à inclure :

je dispose donc d'un doc html contenant mon en-tête et mon pied de page
(head-foot.html), dans votre cas il s'agit d'elements tr:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <!-- snap snap -->
</head>
<body>
<table border="1">
  <tbody>
    <tr class="page_head">
      <td>ceci est l'en-tête de mes pages</td>
      <td></td>
    </tr>
    <tr class="page_head">
      <td>il peut contenir plusieurs éléments</td>
      <td></td>
    </tr>
    <tr class="page_foot">
      <td>ceci est le pied de page</td>
      <td>(c) moi !</td>
    </tr>
  </tbody>
</table>
</body>
</html>

et ma feuille de style contient le code suivant :

<xsl:template match="whatever">
  <html>
   <head><!--etc etc--></head>
   <body>
     <table>
     <xsl:apply-templates
select="document(head-foot.html)//*[@class='page_head']"
mode="include_hf'/>
     <tr><!--plein de choses --></tr>
     <xsl:apply-templates
select="document(head-foot.html)//*[@class='page_foot']"
mode="include_hf'/>
     </table>
   </body>
 </html>
</xsl:template>

<xsl:template match="node()|@*" mode="include_hf">
  <xsl:copy select=".">
    <xsl:apply-templates select="node()|@*" mode="include_hf"/>
  </xsl:copy>
</xsl:template>
    
Il faut toutefois prendre garde à ce que les éléments identifiés par
l'attribut class soient bien valides à l'emplacement ou ils sont insérés
dans le xsl. Mais je peux facilement éditer mon fichier head-foot.html
avec amaya (ou un autre outil xhtml).

Cordialement,
Stéphane.

Le mardi 11 janvier 2005 à 09:49 +0100, Eric van der Vlist a écrit :
> Bonjour,
>
> Le mardi 11 janvier 2005 à 09:41 +0100, Fabrice Estiévenart a écrit :
> > merci pour votre réponse, je ne connaissais pas l'existence de cette
> > fonction "document"
> >
> > comme vous le signalez, l'inconvénient de cette solution est que le
> > document à inclure doit être de l'XML bien-formé (d'où -> racine unique)
> >
> > dans mon cas, j'aimerais inclure 2 lignes de tableau
> > (<tr>...</tr><tr>...</tr>); puis-je utiliser un tag <span> ou <div> pour
> > former la racine unique du document à inclure ?
> > (<span><tr>...</tr><tr>...</tr></span> -> ok XML bien-formé)
> >
> > est-ce (notamment) pour cette utilisation que ces tags ont été définis dans
> > la norme ?
>
> Vous pouvez, dans le document que vous allez "inclure", prévoir
> n'importe quel élément racine :
>
> <nImporteQuelElementRacine><tr>...</tr><tr>...</tr></nImporteQuelElementRacine>
>
> et, comme Stéphane Bonhomme le suggérait, le filtrer lors de la recopie,
> par exemple (sans espace de noms) :
>
> <xsl:copy-of select="document('doc.xml')/nImporteQuelElementRacine/*"/>
>
> Là où cela deviendrait plus délicat, ce serait si vous vouliez vraiment
> que la balise de début de la table figure dans ce document (sans la
> balise de fin)...
>
> > désolé pour cette question un peu "out of scope"
>
> Elle ne l'est pas!
>
> Cordialement,
>
> Eric van der Vlist
>
>

-- 
    Stéphane Bonhomme           --           Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
   Technologies Web et Logiciels Libres
      s.bonhomme@wanadoo.fr   -   http://www.exselt.com
         04 76 17 09 40        /      06 88 57 27 08
--
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 Tue Jan 11 10:48:39 2005

Archive générée par hypermail 2.1.8 le 31/01/2005 - 22:02 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement