我得到了如下的html代码:
<p style="margin:0 0 0.5em 0;"><b>Blablub</b></p>
<table> ... </table>
现在我想查询表格正上方<b>
的内容,但前提是表格中没有任何属性。我尝试了以下查询:
//表[否(@ *)] /前同辈:: P / B
如果我完全移除preceding-sibling::p/b
部分,则可行。它给了我我需要的桌子。但是,如果我使用此查询,它会向我提供<b>
标记的内容,该标记位于表WITH属性之前。
答案 0 :(得分:3)
使用强>:
//table[not(@*)]/preceding-sibling::*[1][self::p]/b
这意味着:选择所有b
个元素的所有p
个元素,这些元素是第一个之前没有属性的table
兄弟。
这与问题中引用的问题表达完全不同:
//table[not(@*)]/preceding-sibling::p[1]/b
后者选择跟随兄弟姐妹的第一个b
的{{1}}个孩子 - 不能保证第一个p
兄弟姐妹也是第一个兄弟姐妹。