我正在将xsl文档转换为html,如下所示:
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
Blah-blah
</body>
</html>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
这是对的吗?或者,也许,使用xsl:element
更好?我没有看到这种变体的例子:
<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title">
Title
</xsl:element>
</xsl:element>
<xsl:element name="body">
Blah-blah
</xsl:element>
</xsl:element>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
哪种变体是对的?
最好的祝福.
文字结果元素(即您的第一种方法)更短,更容易键入且更易于阅读。我建议xsl:element
仅在您想要根据输入数据动态计算元素名称和/或命名空间的情况下使用,例如
<xsl:template match="*">
<xsl:element name="{translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我会像第一个示例中一样使用文字结果元素。但就结果而言,没有对错之分,两种变体都给出相同的结果树。