我发现
this page描述了Muenchian方法,但我认为我应用错了.
@H_403_1@考虑到这将返回一组年龄:
/doc/class/person/descriptive[(@name='age')]/value
@H_403_1@1..2..2..2..3..3..4..7@H_403_1@但是我想要一个节点组,每个年龄只有一个节点.
@H_403_1@1..2..3..4..7@H_403_1@每个都似乎返回所有的值,而不是唯一的值:
/doc/class/person/descriptive[(@name='age')][not(value=preceding-sibling::value)]/value /doc/class/person/descriptive[(@name='age')]/value[not(value=preceding-sibling::value)]@H_403_1@我失踪了什么
以下是一个例子:
A B C D @H_403_1@编辑:
由于mousio评论说,如果它是唯一出现的时间,它不会捕获列表中的最后一个项目.考虑到Fëanor的评论,这里有一个更好的解决方案:
<root> <item type='test'>A</item> <item type='test'>B</item> <item type='test'>C</item> <item type='test'>A</item> <item type='other'>A</item> <item type='test'>B</item> <item type='other'>D</item> <item type=''>A</item> </root>@H_403_1@而XPath:
//preceding::item/preceding::item[not(.=preceding-sibling::item)]/text()@H_403_1@结果:
A B C D @H_403_1@编辑:
由于mousio评论说,如果它是唯一出现的时间,它不会捕获列表中的最后一个项目.考虑到Fëanor的评论,这里有一个更好的解决方案:
/root/item[not(.=preceding-sibling::item)]