2009-10-20 10 views
0

en utilisant xslt Je suis en train d'obtenir xhtml o/p .J'ai utilisé xmlns = "http://www.w3.org/1999/xhtml" dansComment faire pour supprimer l'espace de noms dans xslt

<xsl:stylesheet> 

à obtenir xhtml o/p.Chaque chose est bien, mais dans le premier div, je reçois le même espace de noms. à savoir

<div xmlns="http://www.w3.org/1999/xhtml"> 

Maintenant, comment supprimer xmlns = "http://www.w3.org/1999/xhtml"

+1

pouvez-vous s'il vous plaît poster votre feuille de style XSLT et les balises de sortie? –

Répondre

1

Pourquoi vous voulez supprimer l'espace de noms? Cela fait partie de la spécification XHTML, et vous dites que vous voulez une sortie XHTML. Alors - où est le problème?

Apparemment, vous démarrez votre sortie avec <div>, sinon vous auriez la déclaration d'espace de noms sur l'élément <html>.

+0

thats vrai qu'il viendra en mais est-il possible de supprimer l'espace de noms. – Wondering

+2

Encore une fois: pourquoi? Il * appartient * à XHTML, il * doit * être là. – Tomalak

4

Comme d'autres l'ont souligné, vous ne voudrez peut-être pas faire cela. Si vous souhaitez que la sortie soit XHTML, vous devez conserver la déclaration d'espace de noms XHTML.

Cela étant dit, si vous voulez vraiment faire:

<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <!-- attributes, commments, processing instructions, text: copy as is --> 
    <xsl:template match="@*|comment()|processing-instruction()|text()"> 
    <xsl:copy-of select="."/> 
    </xsl:template> 

    <!-- elements: create a new element with the same name, but no namespace --> 
    <xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 
Questions connexes