<div class="plan"> don't get <a class="ensure" href="https://google.com">linktext</a> more sentence here </div>
我试图让Xpath断言整个句子,这是所有带有撇号的文本和(链接+其文本)在1表达式中,如下所示。但它不起作用,请帮忙吗?
//div[contains(text() = 'don\'t get more sentence here']/a[contains(text()='linktext')]/@href']
答案 0 :(得分:1)
指定撇号而不与单引号分隔符冲突的方式vary per the language hosting the XPath。
但是,如果我怀疑您已经指定了目标div
,那么您可能会在这里解决问题。如果匹配链接锚文本和div
的结尾就足够了,你可以使用这个XPath:
//div[a[. = 'linktext'] and ends-with(., ' more sentence here ')]
答案 1 :(得分:1)
目前还不完全清楚你要完成的是什么,但这里有一个应该有效的表达方式:
//div[text()[contains(., "don't get")] and
text()[contains(., "more sentence here")]
]/a[contains(text(), 'linktext')]/@href
这也应该有效:
//div[contains(., "don't get") and
contains(., "more sentence here")
]/a[contains(., 'linktext')]/@href
示例中的div
有两个单独的文本节点,因此您不能同时在这两个文本节点上使用单个contains()
。