【问题标题】:Using xsl:element tag for html transformation使用 xsl:element 标签进行 html 转换
【发布时间】:2012-10-22 04:58:28
【问题描述】:

我正在像这样将 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>

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

【问题讨论】:

    标签: html xslt tags


    【解决方案1】:

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

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

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

    【讨论】:

    • 哦,我没有考虑这个案例(元素名称计算)。谢谢,我现在更清楚了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多