如何將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);

我需要做這樣的事情:

 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);

我怎麼能轉換這個?

感謝提前做出任何回應,chapas

一般承認的答案

請嘗試以下代碼。你需要做一些改變。控件innerHTML格式正確,可以用作xmlNode的innerXML

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);

希望這可以幫助


熱門答案

為什麼不使用HAP的API創建節點呢?它應該非常相似。

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);

沒有簡單的方法來獲取HtmlGenericControl實例(AFAIK)的外部HTML。如果你有它,你可以將HTML傳遞給HtmlNode.CreateNode()方法來創建它。但我強烈建議不要努力做到這一點。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因