我正在尝试使用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">
可能是什么问题?
答案 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>