C#でHTML文書に新しいノードを挿入する

c# html-agility-pack

質問

私はhtmlagilitypackを使用してドキュメントに新しいノードを挿入しようとしています。私は、ストリームからドキュメントを読み込み、ノードを挿入して、ドキュメントをFileContentResultオブジェクトとして返します。

HtmlDocument ndoc = new HtmlDocument();
ndoc.Load(stream);

HtmlNode usern = HtmlNode.CreateNode("<img .... />");
usern.Attributes.Add("onclick", "javascript:document.location.href='/Home/Index';");
ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern);

using (MemoryStream ms = new MemoryStream())
{
   ndoc.Save(ms);
   ms.Seek(0, System.IO.SeekOrigin.Begin);
   fileBytes = ms.ToArray();
}

FileContentResult file = File(fileBytes, "text/html");
return file;

問題:新しいノード(img)が挿入されていません。このコードを使用していて、ストリームからドキュメントを読み込んでFileContentResultとして返すだけなら、フッターのコンテンツはすべて消えてしまいます。私はこのコードの問題が何か、あるいは私が間違っていることを知りたいですか?

人気のある回答

私は同じ問題を見つけ、クローンオブジェクトを渡して解決しました。ちょうどラインを修正する

ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern);

ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern);



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