我得到所有div具有相同的类名,但是当我将它们插入数据库并使用数据表来处理键时我使用查询 选择前1个ID,从myTable链接它返回所有记录,意味着我的代码有问题,我们是否需要使用算法或模式来提取我们需要的数据,或者我们可以在从htmldocument获取数据后直接访问。我有一个网站的所有Html,我选择了52个具有相同类的div,但当我从我的数据库中选择它们到datatable时,它会一次又一次地插入它们,如果我使用Top 1查询。它返回了我所有的记录。我该怎么办? 例如,这是获取子类别的代码。我正在选择块1,其中包含与我的div相关的记录,并且还有其他div的数据。
doc.LoadHtml(Result);
HtmlNodeCollection categorynode = null;
categorynode = doc.DocumentNode.SelectNodes("//div[@class='block1']"); //| //div[@class='column even'] | //div[@class='column odd'] ");//"//div[@class='drop-menu']//a[@href]"
if (categorynode != null)
{
foreach (HtmlNode Node in categorynode)
{
string Html = Node.InnerHtml;
if (Html != null)
{
HtmlDocument Node2 = new HtmlDocument();
Node2.LoadHtml(Html);
foreach (HtmlNode subbnode in Node2.DocumentNode.SelectNodes("//div[@class='itemMenu level1']/a"))
{
string attt = subbnode.InnerText;
attt = attt.Replace("&", "&").Replace("&;", "&");
HtmlAttribute att = subbnode.Attributes["href"];
Regex r = new Regex(@"<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value>.*?)</a>");
//var regex=(new Regex(@"(?<=[\?&]id=)\d+(?=\&|\#|$)").Match(att.Value).Value);
string links = att.Value;
ModelClass _ms = new ModelClass();
_ms.link = links;
_ms.Name = attt;
_ms.CID = 0;
_ms.Type = "Sub Categories";
Controller cc = new Controller();
cc.InsertCategories(_ms);
Console.WriteLine("Sub Categories >>> " + _ms.Name);
}
}
}
我必须使用算法或树来获取我想要的记录吗?指导我,
答案 0 :(得分:1)
在你的选择中使用// div,双斜杠将从整个源中选择与目标div具有相同名称的div并使用点.//在斜杠之前将只获取当前div