У меня есть следующий код, чтобы найти некоторые элементы в моем HTML и сделать что-то с теми, которые имеют определенный атрибут:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//div[contains(@class,'item')]"))
{
var hasAttachments = div.Attributes.FirstOrDefault(a => a.Name.Equals("hasattachments"));
if (hasAttachments.Value.Equals("True"))
{
var itemId = div.Attributes.FirstOrDefault(a => a.Name.Equals("itemid")).Value;
doStuffWithItemId(itemId);
}
}
Мне было интересно, смогу ли я объединить свой запрос, чтобы найти элементы, которые обладаютclass и значение атрибута, установленное на "True"
, что-то вроде этого:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//div[contains(@class,'item')] and //div[@data-hasattachments=\"True\"]"))
{
var itemId = div.Attributes.FirstOrDefault(a => a.Name.Equals("itemid")).Value;
doStuffWithItemId(itemId);
}