给出这个xml:
<root>
<list>
<!-- foo's comment -->
<item name="foo" />
<item name="bar" />
<!-- another foo's comment -->
<item name="another foo" />
</list>
</root>
Run Code Online (Sandbox Code Playgroud)
我想使用XPath来选择有评论紧接所有这些项目节点,这是我喜欢选择"foo"和"另一个foo"的项目,但不是"栏"项.
我已经摆弄了前兄弟轴和comment()函数,但无济于事.
这似乎有效:
//comment()/following-sibling::*[1]/self::item
Run Code Online (Sandbox Code Playgroud)
它会查找紧随其后的注释的兄弟姐妹,这些兄弟姐妹也是<item>元素。我不知道有什么更好的方式来表达这个::*[1]/self::item丑陋的部分;请注意,如果它被写入::item[1],那么它也会发现<item>s 没有立即被注释处理。