xsl检查颜色是名称还是十六进制

时间:2017-04-18 20:32:26

标签: xslt xslt-1.0

下面,@color可以是颜色名称或十六进制值。 xslt中有没有办法在测试中区分它们?像某种内置函数或什么东西?

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

可以是redff0000

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

1 个答案:

答案 0 :(得分:2)

我相信你可以使用:

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

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

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