使用xsl:element标签进行HTML转换。

5
我正在将 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个回答

4

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

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

在其他情况下,我会像您的第一个示例一样使用文字结果元素。但就结果而言,两种变体都可以得到相同的结果树。

哦,我没有考虑到这种情况(元素名称计算)。谢谢,现在对我来说更清楚了! - bsiamionau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接