我的情况是我的终点和中点可能会有所不同。
我一直都有:
<p style="margin-top: 0px;" >
和
<p class="contactAdvisor">
介于两者之间,我会有不同的项目,包括<b>
,<i>
,<strong>
,<br>
标题1,2或3.我可能还有一个或多个{ {1}}在两个固定项目之间。
我想要获得的是这两个元素之间的所有文本,无论是包含在标题,各种样式还是内部子段元素中。
我已经弄乱了包含和前/后兄弟,但我最好的尝试是基于每个用例的pre / follow创建。甚至这给我留下了一些问题,因为如果内部有多个<p>
并且我试图选择所有这些问题,我只会得到一个。
答案 0 :(得分:0)
根据层次结构,您可以使用前面的::或前面的兄弟::。
尝试选择以下内容:
//*[preceding::p[@style="margin-top: 0px;"] and not (preceding::p[@class="contactAdvisor"])]
这应该排除第一个p之前的所有内容和第一个条件以及第二个之后的所有内容。未经测试,因此您可能需要稍微调整一下。
答案 1 :(得分:0)
//p[@style="margin-top: 0px;"]/following::*[following::p[@class="contactAdvisor"]]
//*[preceding::p[@style="margin-top: 0px;"] and following::p[@class="contactAdvisor"]]