Как добавить HtmlGenericControl в HtmlNode?

c# html html-agility-pack htmlgenericcontrol

Вопрос

Я застрял, это должно быть очень просто, но я не вижу, как это сделать.

У меня есть этот код:

 var divEl = doc.DocumentNode.SelectSingleNode("//div[@id='" + field.Id + "']");

 var newdiv = new HtmlGenericControl("div");
 newdiv.Attributes.Add("id", label.ID);
 newdiv.Attributes.Add("text", label.Text);
 newdiv.Attributes.Add("class", label.CssClass);

И мне нужно сделать что-то вроде этого:

    divEl.AppendChild(newdiv); //not working its expecting a HtmlNode, not a HtmlGenericControl

Как я могу это преобразовать?

Спасибо за любой ответ заранее, chapas

Принятый ответ

Попробуйте код ниже. вам нужно будет внести некоторые изменения. control innerHTML хорошо сформирован и может использоваться как innerXML для xmlNode

XmlDocument doc = new XmlDocument();
//Load your xml here TODO
var divEl = doc.DocumentElement.SelectSingleNode("//div[@id='test']"); //Change your xpath here TODO
var newdiv = new HtmlGenericControl("div"); 
newdiv.Attributes.Add("id", "id"); 
newdiv.Attributes.Add("text", "text"); 
newdiv.Attributes.Add("class", "class");

XmlNode newNode = doc.CreateNode("NodeType", "NodeName", "URI/if/any"); //update your variables here
newNode.InnerXml = newdiv.InnerHtml;
divEl.AppendChild(newNode);

Надеюсь это поможет


Популярные ответы

Почему бы просто не создать узел, используя API HAP? Он должен работать очень аналогично.

var newDiv = HtmlNode.CreateNode("<div/>");
newDiv.Attributes.Add("id", label.ID);
newDiv.Attributes.Add("text", label.Text);
newDiv.Attributes.Add("class", label.CssClass);

divEl.AppendChild(newDiv);

Нет простого способа получить внешний HTML- HtmlGenericControl экземпляра HtmlGenericControl (AFAIK). Если у вас есть это, вы можете просто передать HTML- HtmlNode.CreateNode() метод HtmlNode.CreateNode() для его создания. Но я бы настоятельно предложил не пытаться сделать эту работу.




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему