【发布时间】:2015-10-13 03:29:51
【问题描述】:
我正在尝试使用 xsl 转换文件将 xml 转换为 html。
test.xml:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<website>
<header/>
<content>
<b>First Line</b>
</content>
</website>
test.xsl:
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/website">
<html>
<head/>
<body>
<xsl:apply-templates select="header|content/*"/>
</body>
</html>
</xsl:template>
<xsl:template match="header">
<b>Header</b>
<br/>
</xsl:template>
</xsl:stylesheet>
转换后的html文件如下:
<?xml-stylesheet type="text/xsl" href="test.xsl" ><html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body><b>Header</b><br><b>First Line</b></body>
</html>
我们看到一切都正确转换了,但在输出中,样式表行位于顶部。我怎样才能摆脱它?我使用 IE 进行了此操作,然后查看了源代码。然后我尝试使用 msxsl.exe 转换文件并得到相同的结果。
如果我从 xsl 文件中删除身份转换,问题就会消失,但它不会正确转换输出。
【问题讨论】: