Базовые операции с html атрибутами в классе WebBrowser

WebBrowser работа с html атрибутами

В этой статье хотелось бы показать несколько простых операций с HTML атрибутами, которые можно выполнить с помощью класса webBrowser. Надеюсь, что Вы уже работали с данным классом или одноименным элементом управления и уже знаете, как получить содержимое html страницы и как дождаться полной загрузки страницы. Поэтому сразу же переходим к основной теме статьи.

Наиболее распространенные задачи с HTML атрибутами

И так для начала создадим Windows Forms приложение, а затем добавим на форму: кнопку, элемент управления webBrowser (wb) и textBox, в который будем выводить изменения, которые произойдут в документе. После чего создадим небольшую, простенькую HTML страницу, которую будем использовать, в качестве шаблона для приведенных ниже примеров.

<html>
<head></head>
<body>
<div>
<p>csharp</p>
</div>
</body>
</html>

Здесь же помещу код, который необходимо добавить и выполнить в самом начале любого примера, чтобы получить все HTML элементы с тэгом &#171;p&#187;.

HtmlElementCollection paragraphs;
paragraphs = wb.Document.Body.GetElementsByTagName("p");

Так же обратите внимание, для того чтобы найти, создать, изменить или добавить атрибут class, Вам всегда необходимо указывать имя classname, более подробно об этом можно прочитать здесь.

Если Вам нужно проверить или убедиться в том, что в HTML документе действительно произошли какие-то изменения, то в самом конце любого из примеров добавьте строку, которая позволяет вывести содержимое тега body.

textBox1.Text = wb.Document.Body.OuterHtml;

Порядок действий:

  • Поиск элементов с тегом p
  • Код с каким-либо действием над HTML атрибутом
  • Вывод изменений в textBox

Ну, а теперь переходим к задачам.

Как добавить HTML атрибут

В классе webBrowser существует универсальный метод SetAttribute, с помощью которого Вы можете: создать, изменить, удалить или добавить HTML атрибут. Данный метод принимает два параметра: имя атрибута и его значение. Рассмотрим несколько простых примеров.

Добавление нового атрибута по имени class к элементу с тегом &#171;p&#187;.

//1. Ищем все элементы с тегом p
//2. Создаём и добавляем атрибут class
foreach (HtmlElement par in paragraphs)
{
par.SetAttribute("classname", "one");
}
//3. Выводим содержимое тега body

Результат

создание атрибута

Если у элемента уже присутствует html атрибут, но его имя отличается от того имени атрибута, который Вы хотите добавить, то в таком случае так же будет создан и добавлен новый HTML атрибут. Например, внесём небольшое изменение в наш шаблон:

<p align="right">

Снова выполним выше описанный код и получим следующий результат:

добавление атрибута

Если же при добавлении нового HTML атрибута имена совпадают, то тогда изменяется значение у существующего атрибута.

<p class="two">

Выполним тот же самый код и посмотрим на результат.

<body>
<div>
<p class="one">csharp</p>
</div>
</body>

Как изменить HTML атрибут

Как уже говорилось чуть ранее, для того, чтобы изменить HTML атрибут, нужно так же воспользоваться методом SetAttribute. Например, снова сделаем небольшое изменение в шаблоне:

<p class="one">

А затем изменим текущее значение атрибута class.

foreach (HtmlElement par in paragraphs)
{
if (par.GetAttribute("className") == "one")
{
par.SetAttribute("classname", "two");
}
}

Проверка в данном примере используется лишь для демонстрации того, как например, стоило бы поступить, если бы у элемента с тэгом &#171;p&#187; было бы несколько атрибутов и Вам нужно было бы найти какой-то конкретный из них. В данном же примере проверку можно не использовать.

изменение атрибута

Если Вам нужно изменить название атрибута, то тогда Вам сначала нужно создать новый атрибут, а затем удалить старый или наоборот.

Как удалить HTML атрибут

Для того чтобы удалить HTML атрибут, нужно в метод SetAttribute, в качестве второго параметра, передать пустое значение, например, снова не много изменим наш шаблон.

<p align="right">

Код:

foreach (HtmlElement par in paragraphs)
{
par.SetAttribute("align", "");
}

Результат:

удаление атрибута

Как получить значение атрибута

Чтобы получить значение HTML атрибута необходимо воспользоваться методом GetAttribute, в который необходимо передать имя атрибута. Например, сделаем небольшое изменение в шаблоне.

<p align="left">

А затем получим значение атрибута.

foreach (HtmlElement par in paragraphs)
{
string valueAtr = par.GetAttribute("align");
}

Результат: left.

На этом всё, если есть вопросы, то оставляйте их в комментариях.

Читайте также:

2 комментария

  1. Что значит свой meta?
    Добавить куда? В загруженный документ или в документ, который должен быть создан веб браузером?

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *