我需要一个XSLT 1.0测试表达式,将指示当前结点t的元素是否是完全交错,这样XPath来检测儿童是否被交错
<t>
<cat />
<dog />
<horse />
<cat />
<dog />
<horse />
</t>
或有一些其它顺序,如
<t>
<cat />
<cat />
<dog />
<dog />
<horse />
<horse />
</t>
或
<t>
<cat />
<dog />
<cat/>
<horse/>
<cat/>
<horse />
</t>
如果第一,可以有任意数量的这种元组。如果第二个,可以有任何数量(包括零)的每种孩子,并以任何顺序。
一只猫,一只狗,一匹马的特殊情况可以测试真或假,无论哪种算法都更容易。
我事先知道三个元素的名称。
编辑。在Dimitre的要求下,让我试着说另一种,也许更简单的方法。
上下文节点具有任意数量的子节点,但每个子节点只有三个名称中的一个。在处理这些孩子之前,我需要测试它们是否以重复模式出现,例如ABCABCABC或CABCAB,或者其他三个重复三元组的组合,其中每个三元组出现一次(ABCABC测试为真,ABBABB测试为假) 。
是否“可以有任意数量的” 1个或多个元组所有的情况下返回真有点不违背“我知道了_three_元素的名称“? –
只有三种元素,我知道他们的名字。但是(在非交错的情况下),可以有任何数量的每种实例。 – JPM
元素是否总是以给定的顺序交错排列,或者顺序可能不同,他们只需要定期分发? – nine9ths