Мне нужно добавить пользовательский атрибут с увеличивающимся числом к каждому тегу HTML в документе, аналогично этому вопросу , но только в HTML, а не в файле XML.
Я попытался сделать это с помощью Agility Pack в HTML, вот мой код:
HtmlDocument htmldoc = new HtmlDocument();
htmldoc.LoadHtml(text);
var num = 1;
foreach (HtmlNode node in htmldoc.DocumentNode.DescendantNodes())
{
node.Attributes.Add("gist_num",(num++).ToString());
}
var numberedfilename = Path.GetDirectoryName(fname) + @"\" + Path.GetFileNameWithoutExtension(fname) + "-num.htm";
htmldoc.Save(numberedfilename);
Но здесь я получаю исключение переполнения стека в классе HTML Agility Pack HtmlTextNode.
Я попробовал несколько способов исправить эту ошибку, изменив класс, но безрезультатно.
Что бы вы предложили здесь?
--- редактировать ---
Таким образом, исключение - просто «Переполнение стека», записанное в консоль.
"Процесс завершен из-за исключения StackOverflowException."
Поскольку это переполнение стека, нет возможности получить какие-либо значения стека.
Вот код, где VS показывает, что происходит это исключение:
/// <summary>
/// Gets or Sets the text of the node.
/// </summary>
public string Text
{
get
{
if (_text == null)
{
return base.OuterHtml;
}
return _text;
}
set { _text = value; }
}
Итак, есть идеи?