XPath中包含内容的元素?

时间:2018-07-23 19:11:25

标签: c# html xml xpath html-agility-pack

我正在使用HtmlAgilityPack,并且遇到以下情况:

<table class='table-main odds '>   
   <tbody>
      <tr>..</tr>
      <tr>..</tr>
      <tr>..</tr>
      <tr></tr>
      <tr></tr>
  </tbody>
</table>          

您可以看到里面只有三个tr包含内容,因此我希望最终结果中仅前三个tr可用。实际上我的代码返回了所有tr

 HtmlNode oddsTable = doc.DocumentNode
          .SelectSingleNode("//table[starts-with(@class, 'table-main')]");
 HtmlNodeCollection rows = oddsTable.SelectNodes("tbody//tr");

如何使用xpath实现这一目标?

感谢您的帮助和解释。

1 个答案:

答案 0 :(得分:5)

取决于您对 content 的理解:

  • 任何内容//tr[node()]
  • 元素内容//tr[*]
  • 文本内容//tr[text()]
  • 非空白内容//tr[normalize-space()]