用于选择文章部分的XPath

时间:2015-06-03 19:40:21

标签: html xpath

假设文章的一部分如下(html源代码):

<h2>Introduction</h2>
  ....
<h2>References</h2>
  ...a bunch of text...
<h2>Further Readings</h2>  //optional
  .....

我想知道是否可以使用XPath表达式提取&#34;引用&#34;在上面的例子中的一部分?

我试过类似//h2[contains(.,'References']/following::*的内容,但是我不知道如何指定所需部分的结尾,它会返回文档的其余部分。

2 个答案:

答案 0 :(得分:2)

如果你想要元素直到下一个h2使用这样的xpath

//*[following-sibling::h2[preceding-sibling::h2[1][contains(.,'References')]]  and preceding-sibling::h2[contains(.,'References')]]

Wath是否意味着:它找到所有具有

的元素

- 前面的h2,前面的第一个h2包含&#39;参考&#39;

- 返回包含&#39;参考&#39;

的h2

第一条规则从xml开始到下一个h2标记采用所有元素。第二次 - 所有必要的h2标签到xml结束。它们的交叉点提供了所需的元素。

或者xpath可能建立在您的建议之上:

//h2[.='References']/following-sibling::*[preceding-sibling::h2[1][contains(.,'References')] and not(name()='h2')]

取得所有必要的h2标签//h2[.='References']/following-sibling::*,这不是h2并且我们的h2标签是第一个h2之前

答案 1 :(得分:0)

上述文字的Xpath将是

// H2 [文本()=&#39;参考文献&#39;]

如果你想检查 正确性 在xpath之上 然后打开网页i chrome右击并检查元素,单击ESC按钮打开控制台 开发人员工具和类型一样 此

$ x(&#34; // h2 [text()=&#39;参考&#39;]&#34;)并按Enter键

它将为您提供一个html代码悬停在该行上,并看到它突出显示&#34;参考&#34;是否突出显示文本意味着xpath是否正确