Как заменить весь текст HTMLElement чем-то другим? - PullRequest
1 голос
/ 04 сентября 2011

Вот пример.

webBrowser1.Document.Body.InnerHtml содержит:

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

и в моем классе MyWebBrowser я хочу переписать весь тег img в некоторый текст, например в строку: "& ltmyImage & gt" (мне это нужно для приложения чата, если пользователь не хочет видеть изображения)

Я думал, что смогу сделать что-то подобное:

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

но выдает исключение.

На самом деле я решил это путем поиска этих конкретных тегов во всем документе и замены его с использованием методов класса String, но код выглядит не очень хорошо. Если есть более эффективный способ сделать это, не беспокойтесь, отвечая на мой вопрос.

1 Ответ

1 голос
/ 04 сентября 2011

Вы можете использовать свойство OuterHtml :

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

Обратите внимание, однако, что присвоение OuterHtml сделает недействительной ссылку на элемент, поэтому image не будет ссылаться на новый контент впоследствии.

...