2011-10-27 169 views
0

我正在嘗試使用XSLT將XML轉換爲xHTML。如何擺脫xmlns =「」?

完成此操作後,我在所有HTML標記(<p>)中都獲得了xmlns =「」屬性。

這是我的我的XSL文件

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
     <xsl:output method="xml" 
     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

的一部分可能是什麼問題?

+1

您可以添加更多的XSL的? (試圖理解爲什麼你的''開始標記不在'xsl:template'之外。) –

+0

另外,你用什麼來處理你的XSLT? –

+0

@DevNull是的HTML是包含在xsl:模板標籤...我只是包括它的信息..我使用Xalan處理XSLT – rgksugan

回答

2

如果你希望你的所有結果的要素是在XHTML命名空間http://www.w3.org/1999/xhtml那麼你需要把該命名空間聲明xsl:stylesheet元素應用,因此使用

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

     <xsl:output method="xml" 
     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/> 

    <xsl:template match="/"> 
    <html> 
     <body> 
     <xsl:apply-templates/> 
     </body> 
    </html> 
    </xsl:template> 

    <xsl:template match="foo"> 
    <p> 
     <xsl:apply-templates/> 
    </p> 
    </xsl:template> 

    ... 
</xsl:stylesheet>