如何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 个节点的列表。
现在,我需要
- 要么测试每个节点以查看它是否包含标签
<a href="soft://an.id/">
。这种包含不是直接的。我的意思是,<div>
包括一个 <table>
和许多 <tr>
、<td>
和 <span>
,以及 <a..>
(只有一个,或 none) </div>
. 之前的某处
- 或直接 select 包含此
<a>
标签的 class="ok"
个节点(div)。
我试过很多东西,都失败了。包括在 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/']]"
一个文档有几个 <div class="ok">
标签。我可以 select 所有这些
"//*[@class="ok"]"
(我不必指定 div,因为只有 div 标签有这个 class)。我得到了一个包含 6 个节点的列表。
现在,我需要
- 要么测试每个节点以查看它是否包含标签
<a href="soft://an.id/">
。这种包含不是直接的。我的意思是,<div>
包括一个<table>
和许多<tr>
、<td>
和<span>
,以及<a..>
(只有一个,或 none)</div>
. 之前的某处
- 或直接 select 包含此
<a>
标签的class="ok"
个节点(div)。
我试过很多东西,都失败了。包括在 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/']]"