Wie fügt man HtmlGenericControl zu einem HtmlNode hinzu?

c# html html-agility-pack htmlgenericcontrol

Frage

Ich bin fest, das muss sehr einfach zu erreichen sein, aber ich sehe nicht wie.

Ich habe diesen Code:

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

Und ich muss so etwas tun:

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

Wie kann ich das konvertieren?

Danke für jede Antwort im Voraus, Chapas

Akzeptierte Antwort

Probieren Sie den folgenden Code aus. Sie müssen einige Änderungen vornehmen. Kontrollen innerHTML ist gut gebildet und kann als innerXML für einen XMLNode verwendet werden

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

Hoffe das hilft


Beliebte Antwort

Warum nicht einfach den Knoten mithilfe der HAP-API erstellen? Es sollte sehr ähnlich funktionieren.

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

Es gibt keine einfache Möglichkeit, den äußeren HTML- HtmlGenericControl der HtmlGenericControl Instanz (AFAIK) HtmlGenericControl . Wenn Sie es hatten, könnten Sie einfach den HTML- HtmlNode.CreateNode() an die HtmlNode.CreateNode() -Methode übergeben, um sie zu erstellen. Aber ich würde sehr empfehlen, nicht zu versuchen, diese Arbeit zu machen.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum