我有这种情况:带有以下HTML的各种文件。我只需要检索“ targetWord”段之后的列表(当然,它会更改我需要解析的页面中的位置)。如何使用HTML Agility Pack?
<p>Word1</p>
<ul>
<li>listobject1</li>
<li>listobject2</li>
<li>listobject3</li>
</ul>
<p>targetWord</p>
<ul>
<li>listobject4</li>
<li>listobject5</li>
<li>listobject6</li>
</ul>
<p>Word2</p>
<ul>
<li>listobject7</li>
<li>listobject8</li>
<li>listobject9</li>
</ul>
我只需要用我的代码获得targetWord之后的列表节点:
foreach (var node in retreivedNodes)
{
s[i] = node.InnerText;
i++;
console.writeline (s[i]);
}
OUTPUT:
listobject4
listobject5
listobject6
答案 0 :(得分:2)
您需要制作一个xpath表达式以符合您的要求
假设我已将您的代码段加载为HAP.HtmlDocument,则代码段为var htmlSnippet
htmlSnippet.DocumentNode.SelectNodes('//p[text()="targetWord"]/following-sibling::ul[1]//li')
将返回目标单词p标签之后的第一个ul节点的li个子节点的节点集。