У меня проблемы с HtmlAgilityPack и методом GetAttributeValue.
В приведенном ниже коде я ожидаю, что мой тест GetAttributeValue для "href" не будет выполнен только для элемента html без атрибута, однако он возвращает false для всех элементов.
using System;
using HtmlAgilityPack;
public class Program
{
public static void Main()
{
var html = @"<!DOCTYPE html>
<html>
<body>
<a href=""http://www.google.com"" title=""Google"" />
<a id=""someotherlink"" title=""Some Other Title"" />
</body>
</html> ";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectNodes("//a");
foreach (var link in node)
{
if (link.HasAttributes)
{
Console.WriteLine(link.OuterHtml);
if (link.GetAttributeValue("href", false))
{
Console.WriteLine("\t" + link.Attributes["href"].Value);
}
else
{
Console.WriteLine("\tThis link don't have a href dude");
}
}
}
}
}
Документ утверждает, что GetAttributeValue должен возвращать ложное значение только тогда, когда значение не найдено. Как ни странно, если я использую строку, подпись строки, она работает нормально.
Доку на https://docs.workflowgen.com/wfgmy/v400/html/211ece6d-1ae3-7c29-b86f-e908e4766d4c.htm