下面,@color
可以是颜色名称或十六进制值。 xslt中有没有办法在测试中区分它们?像某种内置函数或什么东西?
<xsl:when test="/path/@color" />
可以是red
或ff0000
如果它是十六进制值,我需要知道是否连接#
符号。
答案 0 :(得分:2)
我相信你可以使用:
<xsl:if test="translate(/path/@color, '123456789abcdef', '000000000000000')='000000'">
这是假设十六进制颜色为小写并填充为6位数。
然而,误报的可能性仍然很小 - 例如,如果颜色恰好被命名为“facade”,则无法通过#facade
十六进制值告诉它。