Fork me on GitHub

XPath匹配含有指定文本的标签---contains的用法

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()


运行结果:

 

 

 

posted @ 2019-09-22 16:36  暮良文王  阅读(22432)  评论(0编辑  收藏  举报