[XSL] apply-template me génère des xmlns vides

apply-template me génère des xmlns vides [XSL] - HTML/CSS - Programmation

Marsh Posté le 19-07-2006 à 17:53:41    

En gros :
 
XML :


<?xml version="1.0" encoding="utf-8"?>
<root>
   <toto>1</toto>
   <toto>2</toto>
</root>


 
XSL :


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml"><head><title>toto</title></head><body>
    <xsl:apply-templates select="root/toto"/>
    </body><html>
  </xsl:template>
  <xsl:template match="toto">
    <p><xsl:value-of select="."/></p>
    <hr/>
  </xsl:template>
<xsl:stylesheet>


 
Sortie :


<html xmlns="http://www.w3.org/1999/xhtml"><head><title>toto</title></head><body>
  <p xmlns="">1</p>
  <hr/>
  <p xmlns="">2</p>
  <hr/>
</body><html>


 
=> La première balise contenue dans chacun de mes templates se retrouveavec un attribut xmlns vide.
 
Qu'il soit vide ou plein, je m'en fout. Mon problème, c'est qu'en XHTML, il n'est autorisé que pour la balise <html>
 
Et du coup je ne génère que des pages non valides.
 
J'arrive pas à trouver sur Google une solution à mon problème.
J'ai trouvé une solution pour <xsl:copy-of/> qui pose un problème similaire. Mais pas pour template (et le solution n'est pas applicable)

Reply

Marsh Posté le 19-07-2006 à 17:53:41   

Reply

Marsh Posté le 19-07-2006 à 19:06:24    

Argh !
 
Après avoir passé un temps pas possible dessus cet après-midi, je viens d'avoir une illumination.
 
J'ai shooté le xmlns="http://www.w3.org/1999/xhtml" qui se trouvait dans le tag <html>.
Et à la place, je l'ai mis sur toutes mes balises <xsl:template>.
 
Résultat, après le rendu, <html> a bien l'attribut, mais plus aucun autre tag ne l'a :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed