使用xsl:element标签进行html转换

时间:2012-11-01 15:06:12

标签: html xslt tags

我正在将xsl文档转换为html,如下所示:

  <xsl:template match="/">
    <html>
      <head>
        <title>Title</title>
      </head>
      <body>
        Blah-blah
      </body>
    </html>
  </xsl:template>

这是对的吗?或者,使用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>

哪种变体是对的?
最好的问候。

1 个答案:

答案 0 :(得分:4)

文字结果元素(即您的第一种方法)更短,更容易输入和更容易阅读。我建议仅在你想根据输入数据动态计算元素名称和/或名称空间的情况下使用xsl:element,例如。

<xsl:template match="*">
  <xsl:element name="{translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')}">
     <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

在其他情况下,我会使用第一个样本中的文字结果元素。但就结果而言没有对错,两种变体都给出了相同的结果树。