Ваш конкретный пример довольно прост - последний HtmlAgilityPack также поддерживает Linq, поэтому это будет работать:
HtmlDocument doc = new HtmlDocument();
doc.Load("test.html");
var spanNode = doc.DocumentNode.Descendants("span")
.Where(x => x.Attributes["class"]!=null && x.Attributes["class"].Value == "cvetica")
.FirstOrDefault();
if (spanNode != null)
{
string text = spanNode.InnerText;
string textHello = spanNode.ChildNodes
.Where(x => x.NodeType == HtmlNodeType.Text)
.Last().InnerText;
}
Обратите внимание, что первый вывод будет не таким, как вы могли ожидать, так как для строки "HELLO" нет прямого заключающего элемента, вы также получите HTML-код метки - вы можете обойти это, просто получив последний текстовый узел.