这种转变:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
use="generate-id(preceding-sibling::para[1])"/>
select="key('kFollowing',generate-id())"/>
select="key('kFollowing',generate-id())"/>
当应用于以下XML文档时(将提供的输入包装在单个顶部元素中):blah blah
num1
num2
num3
blah blah
num1
num2
blah blah blah blah blah
产生想要的,正确的结果:
blah blah
- num1
- num2
- num3
blah blah
- num1
- num2
blah blah blah blah blah
更新:OP在评论中指出,现在他想要一个解决方案,其中任何非list元素可以划分一组相邻的list兄弟。
以下是已更改问题的解决方案:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
use="generate-id(preceding-sibling::*[not(self::list)][1])"/>
select="key('kFollowing',generate-id())"/>
select="key('kFollowing',generate-id())"/>
将此转换应用于以下XML文档时(请注意,分隔元素现在具有随机名称):blah blah
num1
num2
num3
blah blah
num1
num2
blah blah blah blah blah
产生了想要的正确结果:
blah blah
- num1
- num2
- num3
blah blah
- num1
- num2
blah blah blah blah blah