我有一些 XML 格式的数据。例如:_
<?xml version="1.0"?>
<TableSizes>
<Table name="AuditLog" rows="13193925" reserved="4896864" data="2522592" indexSize="2373824" unused="448"/>
<Table name="Customers" rows="7021839" reserved="3243392" data="1480640" indexSize="1762640" unused="112"/>
</TableSizes>
我希望这些数据由客户转换和显示。因此,当我向用户代理提供 xml 时,我向它提供了一个样式表:
<?xml version="1.0"?>
<?xml-stylesheet type='text/xsl' href='databaseSize.xslt' media='all'?>
<TableSizes>
<Table name="AuditLog" rows="13193925" reserved="4896864" data="2522592" indexSize="2373824" unused="448"/>
<Table name="Customers" rows="7021839" reserved="3243392" data="1480640" indexSize="1762640" unused="112"/>
</TableSizes>
这会导致它被转换成一些合适的 HTML。这足够好。
但现在我想添加数据栏:
就像现在一样,我一直在服务器上生成 HTML(即服务器决定如何显示内容,而不是样式表):
这需要每个表格单元格background
应用自定义样式,并使用计算的渐变停止:
<TR>
<TD>AuditLog
<TD style="background: linear-gradient(to right, #658FC6 0%,rgb(255,255,255) 100%,rgb(255,255,255) 100%)">1319,,3925
<TD style="background: linear-gradient(to right, #FF595E 0%,rgb(255,255,255) 100%,rgb(255,255,255) 100%)">489,,6864
<TD>252,,2592
<TD>237,,3824
<TD>448
</TR>
<TR>
<TD>Customers
<TD style="background: linear-gradient(to right, #658FC6 0%,rgb(255,255,255) 51%,rgb(255,255,255) 100%)">702,,1839
<TD style="background: linear-gradient(to right, #FF595E 0%,rgb(255,255,255) 62%,rgb(255,255,255) 100%)">324,,3392
<TD>148,,0640
<TD>176,,2640
<TD>112
</TR>
显然,我宁愿通过样式表在客户端执行所有这些操作,而不是在服务器上执行。
可能的?
注意:如果不是:这不是问题;就这么说吧。
到目前为止我有什么 XSLT?
本质上,没有。到目前为止,我拥有的 XST 对添加数据栏没有任何作用:
<TD><xsl:value-of select="@name"/>
<TD><xsl:value-of select="@rows"/>
<TD><xsl:value-of select="@reserved"/>
<TD><xsl:value-of select="@data"/>
<TD><xsl:value-of select="@indexSize"/>
<TD><xsl:value-of select="@unused"/>
我添加了一个虚拟数量的渐变绘图代码:
<TD><xsl:value-of select="@name"/>
<TD style='background: linear-gradient(to right, #FF595E 0%,rgb(255,255,255) 50%,rgb(255,255,255) 100%)'><xsl:value-of select="@rows"/>
<TD style='background: linear-gradient(to right, #FF595E 0%,rgb(255,255,255) 50%,rgb(255,255,255) 100%)'><xsl:value-of select="@reserved"/>
<TD><xsl:value-of select="@data"/>
<TD><xsl:value-of select="@indexSize"/>
<TD><xsl:value-of select="@unused"/>
严格来说,我什至没有那个 XSLT。当它无法完成我想要的事情时,我不想编写整个 XSLT。我在上面的 XSLT 是我即时创建的,当时有人建议在我至少假装先有一些 XSLT 之前无法回答这个问题。