gpt4 book ai didi

c# - Html Agility Pack 在双 div 中获取特定内容

转载 作者:行者123 更新时间:2023-11-27 22:45:45 25 4
gpt4 key购买 nike

我是 HTML Agility pack 的新手,我还不知道如何解析以下代码块:

<p>
<div class='myclass1'>
<div id='idXXXX'>content1<br>content2
</div>
<div class="myclass2">
<table>
<tr>
<td align="left">content3 <b><a href="">content4</a></b></td>
<td align="right">content5 <b><a href="">content6</a></b></td>
</tr>
</table>
</div>
</div>
</p>

其中 XXXX 是随机生成的数字。

我有加载 HTML 文档的所有代码。

我想从上面的代码中获取 content1 和 content2 以及不同的查询 content4。

最佳答案

var doc = new HtmlDocument();
doc.Load("test.htm");
var res = doc.DocumentNode.SelectSingleNode("//div[@class='myclass1']");
var firstDiv = res.SelectSingleNode("div");
var content1 = firstDiv.ChildNodes[0].InnerText.Trim();
var content2 = firstDiv.ChildNodes[2].InnerText.Trim();
var content4 = res.SelectSingleNode(".//div[@class='myclass2']")
.SelectSingleNode(".//td[@align='left']/b/a")
.InnerText
.Trim();

更新:

如果您有多个具有给定类的 div,并且您想要匹配每个 div 的内容,您可以这样做:

var doc = new HtmlDocument();
doc.Load("test.htm");
var res = doc.DocumentNode.SelectNodes("//div[@class='myclass1']");
foreach (var item in res)
{
var firstDiv = item.SelectSingleNode("div");
var content1 = firstDiv.ChildNodes[0].InnerText.Trim();
var content2 = firstDiv.ChildNodes[2].InnerText.Trim();
var content4 = item.SelectSingleNode(".//div[@class='myclass2']")
.SelectSingleNode(".//td[@align='left']/b/a")
.InnerText
.Trim();
}

关于c# - Html Agility Pack 在双 div 中获取特定内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7460438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com