从下面的XML文档中,我尝试指定XPath,它将捕获紧跟在h4标题"Source"之后的文本,即 - 在本例中 - "有关源的信息":
<div class="doc-inf doc-inf-information">
<h3>Document information</h3>
<div>
<h4>Source</h4>
<ul>
<li>Information about the source</li>
</ul>
我尝试了以下方法:
//h4[contains(text(), "Source")]/ul/li'
这似乎行不通。有人能帮忙吗?我将不胜感激。
编辑:
我的问题(我没有完全指定,抱歉)是这个div 标签中有多个 h4 标签,我想为每个标签选择 ul-child:
<div class="doc-inf doc-inf-information">
<h3>Document information</h3>
<div>
<h4>Source</h4>
<ul>
<li>Source information</li>
</ul>
<h4>Language</h4>
<ul>
<li><a href="/search-results/1/%7B%22language%22%3A%22chi%22%7D">Swedish</a></li>
</ul>
<h4>Publishers</h4>
<ul>
<li><a href="/search- results/1/%7B%22publisher%22%3A%221%22%7D">Publishing Project</a></li>
</ul>
<h4>Record ID</h4>
<ul>
<li>36785</li>
</ul>
从本质上讲,我试图在 h4 标题"来源"、"语言"、"出版商"、"记录 ID"(= 我感兴趣的是"来源信息"、"瑞典语"、"出版项目"和"36785")下抓住孩子,但 h4 标题在各个页面上的位置不一致,所以我需要能够定位特定标题的子项。
您直接访问没有子项的标记<h4>
,因此以下内容不起作用:
//h4[contains(text(), "Source")]/ul/li
试试这个:
//div[h4[contains(text(), "Source")]]/ul/li/text()
它会搜索一个<div>
,其中<h4>
带有文本"Source"的标签,然后选择<ul>
子项。