我必须配置我们的企业搜索引擎,文档的索引是通过xpath选择器完成的。 在当前设置中有一个xpath
.//div[@id='content']
它基本上选择了网站主要部分的所有元素。同时还有一个额外的div包含了很多废话,所以我试图修改这个xpath来跳过这个div-tag。我正在努力处理有关“不”的文件,但到目前为止还没有运气。
<div id="content">
<div id="i-want-this">
...
</div>
<div id="i-do-not-want-this">
<span>foo</span>
</div>
<div id="i-want-this-too">
...
</div>
</div>
虽然我看到评论中的提示到目前为止帮助了我,但我仍然有一个问题,我想跳过div-tag中的子元素。比方说,里面有一个span-tag。如果我选择
// DIV [@ ID = '内容'] / * [没有(@ ID = 'I-DO-不想学这个')] 我的结果仍然包括这个跨度内容。所以我想,我需要查询id =“content”以下的所有元素,这些元素没有父ID =“我不想要这个”。正确?
答案 0 :(得分:7)
使用以下查询。它将选择id不是i-do-not-want-this
的所有子元素。
//div[@id='content']/*[@id != 'i-do-not-want-this']
或 - 相同的逻辑 - 使用ǹot()
函数(感谢@paul_t)
//div[@id='content']/*[not(@id='i-do-not-want-this')]
<强>更新强>
当我说相同的逻辑时,这是不正确的。请访问@IanRoberts的评论