如何摆脱xmlns =“”?

时间:2011-10-27 19:51:47

标签: xml xslt xhtml

我正在尝试使用XSLT将XML转换为xHTML。

执行此操作后,我在所有HTML代码(xmlns="")中都会获得<p>个属性。

这是我的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 个答案:

答案 0 :(得分: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>