如何select <div class="ok">.....<a href="soft://an.id/">...</div>节点?

How to select <div class="ok">.....<a href="soft://an.id/">...</div> nodes?

一个文档有几个 <div class="ok"> 标签。我可以 select 所有这些 "//*[@class="ok"]"(我不必指定 div,因为只有 div 标签有这个 class)。我得到了一个包含 6 个节点的列表。

现在,我需要

我试过很多东西,都失败了。包括在 href 检测中保护“/”(这是必需的吗?)。 我对正则表达式很熟悉,但我必须承认,我发现 XPath 语法更难理解..而且 W3C 参考文档太难了,没有示例..

欢迎任何提示。

如果我没理解错的话,你在 div 下的某处嵌套了 class “ok”,对吧?

因此在 xpath 中,a / 表示直接定位符 under/above 当前标记。如果您要查找找到的div下的某处,您需要使用:

//div[@class="ok"]//a[@href="soft://an.id/"]

然后你需要使用某种断言来检查它是否存在。

为了 select 只有 <div class="ok"> 包含 <a href="soft://an.id/"> 子元素的元素,您可以使用以下 XPath 定位器:

"//div[@class='ok' and .//a[@href='soft://an.id/']]"