我需要一个 XSLT 1.0 测试表达式来指示当前节点 t 的元素是否完美交错,就像这样
<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 测试为假) .