我尝试使用html敏捷包。基本工作正常,只有当我尝试获取零件的子节点时,然后我才不会获得所有与此类“经销商-提供者”相等的节点,
这是我使用的代码:
private void getListOfDiv(string html, string classname)
{
if (html != null)
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var divProduktkategorie = doc.DocumentNode.SelectSingleNode("//div[@class='" + classname + "']");
//this.txtHtmlCode.Text = divProduktkategorie.InnerHtml;
//return;
int i = 1;
foreach( var divAngebote in divProduktkategorie.SelectNodes("//div[@class='dealer-offer']"))
{
this.listBox1.Items.Add(i + ": " + classname);
this.txtHtmlCode.AppendText(divAngebote.OuterHtml);
i++;
}
}
}
我将divProduktkategorie返回到outputfild,然后只得到3个位置,该位置在此单节点下,但是我开始循环,然后得到每个具有'dealer-offer'类的节点,而不仅仅是3个职位。
我的错在哪里?我自己找不到。
感谢您的帮助
答案 0 :(得分:1)
尝试获取具有正确相对路径的3个节点,然后仅对它们进行foreach。不要在divProduktkategorie参考文献中搜索它们。
private void getListOfDiv(string html, string classname)
{
if (html != null)
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var divProduktkategorie = doc.DocumentNode.SelectSingleNode("//div[@class='" + classname + "']//div[@class='dealer-offer']");
//this.txtHtmlCode.Text = divProduktkategorie.InnerHtml;
//return;
int i = 1;
foreach( var divAngebote in divProduktkategorie)
{
this.listBox1.Items.Add(i + ": " + classname);
this.txtHtmlCode.AppendText(divAngebote.OuterHtml);
i++;
}
}
}