【发布时间】:2010-09-28 20:55:35
【问题描述】:
我正在使用 xslt 将 xml 文档转换为 html 以在电子邮件中使用。我需要将 xml 元素与另一个 xml 元素值进行比较,以便我知道该值的格式。基本上我有一个这样的xml结构:
<main>
<comparer>1</comparer>
<items>
<item>
<name>blarg</name>
<values>
<value>1</value>
<value>2</value>
</values>
</items>
</main>
物品信息正在用于建表:
<table>
<tr>
<td>blarg</td>
<td>1</td>
<td>2</td>
</tr>
</table>
我需要做的是使用 xsl 将项目值与“比较器”节点值进行比较,如果它们相等,则将表格中的单元格加粗,否则将单元格值加粗。我需要在不使用 javascript 的情况下完成此操作,因此必须在 xsl 中完成。现在,我正在考虑使用 xsl:variable 然后尝试使用 xsl:when 进行比较。不幸的是,我运气不佳。这是我刚刚开始对表格中的每一行进行处理的内容:
<xsl:variable name="compare" select="//main/comparer" />
...
<xsl:for-each select="value">
<td>
<xsl:choose>
<xsl:when test=". = $compare">
<b>
<xsl:value-of select="."/>
</b>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>.
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:for-each>
*注意:为简洁起见,我省略了大部分 xsl。我只是想专注于我的问题。
【问题讨论】: