我正在使用 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
实现这一目标?
感谢您的帮助和解释。
最佳答案
取决于您所说的内容:
- 任何内容:
//tr[node()]
- 元素内容:
//tr[*]
- 文字内容:
//tr[text()]
- 非空白内容:
//tr[normalize-space()]
关于c# - 内部包含内容的元素的 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51485687/