假设文章的一部分如下(html源代码):
<h2>Introduction</h2>
....
<h2>References</h2>
...a bunch of text...
<h2>Further Readings</h2> //optional
.....
我想知道是否可以使用XPath表达式提取&#34;引用&#34;在上面的例子中的一部分?
我试过类似//h2[contains(.,'References']/following::*
的内容,但是我不知道如何指定所需部分的结尾,它会返回文档的其余部分。
答案 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是否正确