どのように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);

どのように私はこれを変換できますか?

事前にお返事ありがとうございます、チャパス

受け入れられた回答

以下のコードを試してみてください。あなたはいくつかの変更を加える必要があります。 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()メソッドにHtmlNode.CreateNode()てそれを作成することができます。しかし、私はその仕事をしようとしないことを強く勧めます。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ