如何将整个HTML Element的文本替换为其他内容?

时间:2011-09-04 14:48:51

标签: c# html innerhtml dom

这是一个例子。

webBrowser1.Document.Body.InnerHtml包含:

<img id="image1" src="myImage.gif">

并且在我的MyWebBrowser类中,我想将整个img标签重新添加到某些文本,例如字符串:“&amp; ltmyImage&amp; gt”(如果用户不想看图像,我需要它用于我的聊天应用程序)

我以为我可以做那样的事情:

Document.GetElementById("image1").InnerHtml = "&lt" + Document.GetElementById("image1").GetAttribute("src") + "&gt";

但它会抛出异常。

实际上我通过在整个文档中搜索那些特定的标签并使用String类的方法替换它来解决这个问题,但代码看起来不太好。如果有更有效的方法,请不要回答我的问题。

1 个答案:

答案 0 :(得分:1)

您可以使用OuterHtml属性:

HtmlElement image = Document.GetElementById("image1");
image.OuterHtml = "&lt;" + image.GetAttribute("src") + "&gt;";

但请注意,分配给OuterHtml会使对元素的引用无效,因此image之后不会引用新内容。