0

敏捷新手在这里。给定输入文本:

<html>
  ... Lots of html here...
  <label class="list_item_title">Yes</label><br /><br />
    <div class="list_item">
        <div style="width:425px;" class="left"><a href="/xyz">HIT1</a>  (2012)</div>
        <div style="width:190px;" class="right"></div>
    </div>
    <div class="list_item">
        <div style="width:425px;" class="left"><a href="/abc">HIT2</a>  (2012)</div>
        <div style="width:190px;" class="right"></div>
    </div>
  <label class="list_item_title">No</label><br /><br />
  <div class="list_item">
        <div style="width:425px;" class="left"><a href="/xyz">IGNORE</a>  (2012)</div>
        <div style="width:190px;" class="right"></div>
  </div>
  ... Lots of html here...
</html>

我想获得 HIT1 和 HIT2。

基本上算法是在标签节点(class =“list_item_title”)之后找到所有A的innerText,其中innerText =“Yes”

4

1 回答 1

1

此 XPath 表达式适用于您的示例:

//a[preceding::label[1][text()="Yes"]]/text()

它查找所有a前面的第一个label包含Yes并返回它们的 text()。

于 2012-09-06T12:37:10.817 回答