2017-04-18 100 views
1

以下@color可以是颜色名称或十六进制值。 xslt有没有办法在测试中将它们分开?像某种内置函数或其他东西?xsl检查颜色是否是名称或十六进制

<xsl:when test="/path/@color" /> 

可以redff0000

我需要知道是否以连接#符号,如果它是一个十六进制值。

+0

请提供两者的示例,并说明您是否可以使用XSLT 2.0。 –

+0

我仅限于xslt-1.0 – Rod

回答

2

我相信你可以使用:

<xsl:if test="translate(/path/@color, '123456789abcdef', '000000000000000')='000000'"> 

这是假设十六进制颜色是小写并填充为6位数字。

但是,仍然存在误报的可能性很小 - 例如,如果颜色恰好被命名为“facade”,则无法通过#facade十六进制值来告诉它。

相关问题