使用xpath从多个段落中选择文本

时间:2016-07-21 03:41:52

标签: xpath

我的情况是我的终点和中点可能会有所不同。

我一直都有:

<p style="margin-top: 0px;" >

<p class="contactAdvisor">

介于两者之间,我会有不同的项目,包括<b><i><strong><br>标题1,2或3.我可能还有一个或多个{ {1}}在两个固定项目之间。

我想要获得的是这两个元素之间的所有文本,无论是包含在标题,各种样式还是内部子段元素中。

我已经弄乱了包含和前/后兄弟,但我最好的尝试是基于每个用例的pre / follow创建。甚至这给我留下了一些问题,因为如果内部有多个<p>并且我试图选择所有这些问题,我只会得到一个。

2 个答案:

答案 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"]]