XSLT模板使用XML值作为表行';bgcolor';
本文关键字:bgcolor XML XSLT | 更新日期: 2023-09-27 18:24:21
我有一个用于电子邮件的XSLT模板。我希望能够指定整个模板的颜色(在各种表格单元格等上设置),所以我传递给模板的字段之一是ReportHexColor C#属性——一个十六进制颜色字符串(例如#4F81BD)。
public string ReportColourHex { get; set; }
无论我做什么,这个值都不会放在模板中元素的bgcolor
属性中(或者放在td style="background-color:..."
属性中)。
在搜索互联网后,我尝试过:
<td bgcolor="{BuildReportData/ReportColourHex}" style="font-weight: bold">
以及:
<td style="font-weight: bold>
<xsl:attribute name="bgcolor">
<xsl:value-of select="BuildReportData/ReportColourHex" />
</xsl:attribute>
... other text here etc.
</td>
这两种想法都无济于事。为行背景生成的HTML总是白色的(但如果我检查电子邮件的来源,bgcolor实际上没有值,即它看起来像这样:<td bgcolor=""
第一个想法显然是数据不存在。但是,我可以在模板中的其他任何位置渲染<xsl:value-of select="BuildReportData/ReportColourHex" />
,并且该值在最终电子邮件中以文本形式正确显示。这件事让我有点抓狂,所以我们非常感谢您的帮助。
我刚刚偶然发现了这个。这一切都与XSLT模板中的作用域有关。我试图从xsl:for-each
循环中访问BuildReportData/ReportColourHex
值。一旦我在循环外声明了一个变量来保存ReportColourHex值,它就完美地工作了。
很抱歉浪费时间!