2009-01-24 6 views
1

J'essaie d'obtenir les balises meta et img pour fermer dans la sortie d'un xslt. Je l'ai examiné, et il semble que je devrais choisir une méthode "xml" plutôt que "html", mais cela ne semble toujours pas fonctionner.Les balises générées dans xslt ne sont pas fermées correctement

Je suis actuellement obtenu:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:php="http://php.net/xsl"> 

    <xsl:output method="xml" 
       omit-xml-declaration="yes" 
       indent="yes" 
       encoding="iso-8859-1" 
       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 
       doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" /> 

    <!-- ... --> 

    <meta name="keywords" content="{meta/data/here/text()}" /> 

    <!-- ... --> 

Suis-je en train de faire tout ce qui est évidemment faux?

+0

Quelle sortie obtenez-vous actuellement pour votre balise META? –

+0

En outre, quel processeur xslt utilisez-vous? – Alohci

+0

Il semble que vous essayez de générer xhtml, donc la balise meta se ferme comme au lieu de ? Nous avons besoin de plus d'informations – Eddie

Répondre

1

Je peux répliquer la balise meta sans terminaison avec msxsl. Cela peut être corrigé en définissant les xmlns à la norme XHTML (xmlns = "http://www.w3.org/1999/xhtml") sur l'élément xsl: stylesheet. J'ai trouvé dans le passé que msxsl a un certain nombre de problèmes avec le traitement XSLT. En outre, c'est plutôt déprécié.

+0

Quelle version de msxml? msxml 6.0 n'est pas obsolète autant que je sache. Qu'est-ce qui te fait penser ainsi? –

+0

Le processeur XSLT que j'ai utilisé était msxsl.exe, pas msxml. msxsl.exe utilise msxml version 4. msxml n'est pas obsolète. –

Questions connexes