Почему htmlagilitypack не включает атрибут при создании нового узла?

#.net #html-agility-pack

#.net #html-адаптивный пакет

Вопрос:

с помощью.Net и htmlagilitypack. Попытка поместить внешний тег на узел как таковой («элемент» в цикле-это один из найденных тегов «раздел»):

  lt;section aria-label="Tables"gt;...lt;/sectiongt;   foreach (var item in extraTags.ToList())  {  var newNode = HtmlNode.CreateNode("lt;oTag class='cCls'gt;"   item.OuterHtml   "lt;/oTaggt;");  item.ParentNode.ReplaceChild(newNode, item);  }  

Поэтому я ожидал бы, что новый узел будет выглядеть так:

 lt;oTag class='cCls'gt;lt;section aria-label="Tables"gt;...lt;/sectiongt;lt;/oTaggt;  

но вместо этого я получаю:

 lt;oTag class='cCls'gt;lt;sectiongt;...lt;/sectiongt;lt;/oTaggt;  

в нем отсутствует часть » aria-label=»Таблицы»». Как так вышло? и как это исправить?

Ответ №1:

Со мной работает следующее, можете ли вы перепроверить ?

 var doc = new HtmlDocument();  doc.LoadHtml(@"  lt;section aria-label='Tables'gt;  Text  lt;/sectiongt;  ");  var section = doc.DocumentNode.Element("section");  var newNode = HtmlNode.CreateNode("lt;oTag class='cCls'gt;"   section.OuterHtml   "lt;/oTaggt;");  section.ParentNode.ReplaceChild(newNode, section);   Console.WriteLine(doc.DocumentNode.OuterHtml);