protected virtual int FindLimitIndex(HtmlNode currentNode, ref int currentCount, int maxCount)
{
if (currentNode.NodeType == HtmlNodeType.Text)
{
var prevCount = currentCount;
currentCount += currentNode.InnerText.Length;
if (currentCount >= maxCount)
{
var extraChars = maxCount - prevCount;
return currentNode.StreamPosition + extraChars;
}
}
if (currentNode.HasChildNodes)
{
foreach (var node in currentNode.ChildNodes)
{
var index = FindLimitIndex(node, ref currentCount, maxCount);
if (index != -1)
return index;
}
}
return -1;
}