xpath查询网址只有一个文件夹深度

时间:2017-08-16 17:34:49

标签: xpath

我正在成功使用此XPath查询:

//div[(@class="result")]//a[contains(@href,"pinterest.com")]/@href

我在这里使用XPath查询(使用simple_html_dom.php)的网址是 this 。 现在,我想找到 pinterest.com/one-folder-deep-only 的结果,并排除比一个目录更深的所有网址,例如 pinterest.com/one-folder-deep-only/this {{1 }} 即可。我不知道是否有办法实现这一目标。谷歌搜索了很多,但没有找到任何东西。也许我的搜索条件并不是最好的。

你有什么想法吗?谢谢你帮助我。

我正在使用 Chrome XPath Helper 测试查询。

2 个答案:

答案 0 :(得分:0)

" //"是评估所有级别/深度。而只使用一个" /"对于" a"查询仅评估直接孩子

//div[(@id="first-result")]/a[contains(@href,"url.com")]/@href

注意在" a"之前使用/而不是//标签

答案 1 :(得分:0)

尝试以下XPath,仅从所需的锚点中选择@href

//a[contains(@href, "url.com") and not(contains(substring-after(./@href, 'url.com/'), "/"))]/@href

XPath 2.0的解决方案:

//a[contains(@href, "url.com") and count(tokenize(@href, "/"))=2]/@href

请注意,如果在实际HTML源代码href中以"http://url.com"开头,则应指定=4而不是=2