如何使用XSL创建HTML属性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

为什么使用XML数据来设置非法的HTML标签风格?例如:

<li style="width:<xsl:value-of select="width"/>px"> 

为什么我不能这样做?那里有其他的方法吗?

提问于
用户回答回答于

为什么我不能这样做? <li style="width:<xsl:value-of select="width"/>px">

因为XSL 本身就是XML 。这是任何东西......但不是XML。

你的意思是一个属性值模板:

<li style="width:{width}px">

或者显式形式,用于更复杂的表达式:

<li>
  <xsl:attribute name="style">
    <xsl:choose>
      <xsl:when test="some[condition = 'is met']">thisValue</xsl:when>
      <xsl:otherwise>thatValue</xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
</li>

或动态属性名称(注意名称中的属性值模板):

<li>
  <xsl:attribute name="{$attrName}">someValue</xsl:attribute>
</li>

附加说明:必须所有其他子节点之前创建属性。换句话说,保持<xsl:attribute>在顶端。

用户回答回答于

你的原始xsl格式不太好,因为你不能在另一个节点中使用xsl标记。

我认为需要使用xsl:属性,如下所示:

<li>
  <xsl:attribute name="style">
     width:<xsl:value-of select="width"/>px;
  </xsl:attribute>
</li>

扫码关注云+社区