HtmlAgilityPack / XPath在特定标记/下一个标记之前查找所有出现的内容

时间:2012-09-06 12:08:39

标签: xpath html-agility-pack

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

<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&amp; HIT2。

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

1 个答案:

答案 0 :(得分:1)

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

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

它会查找其前一个a包含label的所有Yes并返回其文字()。