在XSL tokenize中访问匹配的模式

时间:2015-05-28 20:05:58

标签: xslt xpath

假设我有以下变量

Set<String> commonlyUsed = allWords.stream()
    .collect(collectingAndThen(
        groupingBy(Function.identity(), HashMap::new, counting()),
        map-> { map.values().removeIf(l -> l<=2); return map.keySet(); }));

有没有方便的方法来访问tokenize()函数中的匹配模式,例如使用这个

<xsl:variable name="randomString" select="'COLUMN1 == 400 or COLUMN1 == 5 and COLUMN2 != 3'" />

或者我必须使用自己在http://docbook.sourceforge.net/release/xsl/1.77.0/doc/lib/str.tokenize.keep.delimiters.html

找到的自定义模板

1 个答案:

答案 0 :(得分:1)

不,无法检索匹配的分隔符。 &#34;不会返回分隔符本身。&#34; (http://www.w3.org/TR/xpath-functions/#func-tokenize

一种解决方法可能是,将or标记为外部循环中的分隔符,然后使用and进行标记,作为内部循环中的分隔符。然后你总会知道你正在处理哪些分隔符,这取决于你在循环中的位置。

另一种方法是使用analyze-string()。请参阅this answer