Есть ли способ использовать AngleSharp, чтобы подсчитать все теги тела, а затем назначить уникальный идентификатор атрибута например, «data-id=1», «data-id=2» и т. д. для всех тегов.
Я хочу проверить это для перевода статического веб-сайта. Затем я буду использовать селектор запросов [data-id] и возьму TextContent из каждого тега, переведу текст с помощью API перевода и верну переведенный текст в идентификатор тега, где это было извлечено из первоначально.
С#
var html = File.ReadAllText(@"C:\example.html");
var parser = new HtmlParser();
var document = parser.Parse(html);
var elements = document.All.Where(o => o.NodeType == AngleSharp.Dom.NodeType.Text && o.TextContent.Trim() != ""); // If text, assign id.
if(elements != null)
{
int number = 0;
foreach(var element in elements)
{
element.SetAttribute("data-id", number.ToString());
number++;
element.OuterHtml.Dump();
}
}
HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>My page heading</h1>
<h2>This is example static page to get all the HTML tags and their <strong>childrens content </strong> and then <span>translate</span>
that into </br> another language.
</h2>
<p>Something in footer</p>
</body>
</html>