C#用xpath解析html

c# html-agility-pack xpath

我正在尝试从HTML文档中解析一个简单的C#中的股票交易所信息。问题是我无法理解语法, tr class =“LomakeTaustaVari”被解析出来但是如何获得没有tr-class的第二位?

这是HTML的一部分,它重复它自我不同的值。

<tr class="LomakeTaustaVari">
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>MSI</div></td>
    <td><div>POH</div></td>
    <td><div>42</div></td>
    <td><div>64,50</div></td>
</tr>
<tr>
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>SRE</div></td>
    <td><div>POH</div></td>
    <td><div>156</div></td>
    <td><div>64,50</div></td>
</tr>

我的C#代码:

<tr class="LomakeTaustaVari">
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>MSI</div></td>
    <td><div>POH</div></td>
    <td><div>42</div></td>
    <td><div>64,50</div></td>
</tr>
<tr>
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>SRE</div></td>
    <td><div>POH</div></td>
    <td><div>156</div></td>
    <td><div>64,50</div></td>
</tr>

热门答案

尝试使用下一个xpath //tr[preceding-sibling::tr[@class='LomakeTaustaVari']]

var nodes = doc.DocumentNode.SelectNodes("//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]");

它应该选择具有类LomakeTaustaVari前一节点tr节点。

仅供参考:如果未找到任何节点,则SelectNodes方法返回null




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因