如果源文档的字符串中只有一个星号,我需要声明测试通过。
因此,像
<xslt:if test="count(find('\*', @myAttribute)) = 1)>
There is one asterisk in myAttribute
</xslt:if>
我需要XSLT 1的功能,但是XSLT 2的答案也会受到赞赏,但除非在XSLT 1中不可能,否则不会被接受。
答案 0 :(得分:4)
在XPath 1.0中,我们可以通过使用translate
删除所有星号并比较长度来实现:
string-length(@myAttribute) - string-length(translate(@myAttribute, '*', '')) = 1
在XPath 2.0中,我可能会这样做:
count(string-to-codepoints(@myAttribute)[. = string-to-codepoints('*')]) = 1
答案 1 :(得分:1)
另一个应该在XPath 1.0中起作用的解决方案:
contains(@myAttribute, '*') and not(contains(substring-after(@myAttribute, '*'), '*'))