Come aggiungere HtmlGenericControl a un HtmlNode?

c# html html-agility-pack htmlgenericcontrol

Domanda

Sono bloccato, questo deve essere molto semplice da realizzare ma non vedo come.

Ho questo codice:

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

E ho bisogno di fare qualcosa del genere:

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

Come posso convertire questo?

Grazie per qualsiasi risposta in anticipo, chapas

Risposta accettata

Prova il codice qui sotto. sarà necessario apportare alcune modifiche. controlli innerHTML è ben formato e può essere usato come innerXML per un 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);

Spero che questo ti aiuti


Risposta popolare

Perché non creare semplicemente il nodo utilizzando l'API di HAP? Dovrebbe funzionare in modo molto simile.

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

Non esiste un modo semplice per ottenere l'HTML esterno dell'istanza HtmlGenericControl (AFAIK). Se HtmlNode.CreateNode() l'hai, puoi semplicemente passare l'HTML nel metodo HtmlNode.CreateNode() per crearlo. Ma suggerirei vivamente di non provare a farlo funzionare.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché