1、标签中只包含文字
<div> <ul id="side-menu"> <li class="active"> <a href="#"> 卷期号: </a> </li> </ul> </div>
取包含 '卷期号' 三个字的节点 //ul[@id='side-menu']/li/a[contains(text(),"卷期号")]
取其内容 //ul[@id='side-menu']/li/a[contains(text(), '卷期号')]/text()
运行结果:
2、文字没有被一个明确的标签包裹
<div> <ul id="side-menu"> <li class="active"> <a href="#"> <i>DOI</i> 卷期号: <span>xxxx</span> </a> </li> </ul> </div>
再用上边的xpath表达式就到不到了, 不过可以借助string(), 将a标签里边的东西全部转换成字符串, 再用contains判断:
//ul[@id='side-menu']/li/a[contains(string(), '卷期号')]/text()
运行结果: