如何使用 XSL 创建 HTML 属性?

新手上路,请多包涵

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

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

为什么我不能这样做?有没有其他方法?

原文由 stockoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 535
2 个回答

为什么我不能这样做?

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

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

你的意思是一个 [属性值模板](https://www.w3.org/TR/2017/REC-xslt-30-20170608/#attribute-value-templates):

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

  • xsl:choose thisValue/xsl:when xsl:otherwisethatValue/xsl:otherwise /xsl:choose /xsl:attribute
  • 
    或动态属性名称(注意名称中的属性值模板):
    
    

  • someValue/xsl:attribute
  • ”`

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

    原文由 Tomalak 发布,翻译遵循 CC BY-SA 4.0 许可协议

    您的原始 xsl 格式不正确,因为您不能在另一个节点内使用 xsl 标记。

    我认为您需要按如下方式使用 xsl:attribute:

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

    原文由 Jon Egerton 发布,翻译遵循 CC BY-SA 2.5 许可协议

    撰写回答
    你尚未登录,登录后可以
    • 和开发者交流问题的细节
    • 关注并接收问题和回答的更新提醒
    • 参与内容的编辑和改进,让解决方法与时俱进
    推荐问题