0 / 0 / 2
Регистрация: 08.12.2013
Сообщений: 14
1
.NET 4.x

Переписывание атрибута для img с HtmlAgilityPack

01.03.2018, 02:07. Показов 550. Ответов 7

Хочу парсить небольшой сайтик и для этого мне нужно отловить разный мусор в аттрибутах и добавить свой)
C#
1
2
3
4
5
6
      foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//*[@id=\"dont_copy\"]/p[*]/img"))
            {
                string imgsrc = node.Attributes["src"].Value; //получаю ссылку на изображение
                node.Attributes.RemoveAll(); //удаляю все аттрибуты
                node.Attributes.Add("src", imgsrc); //добавляю заново
            }
Код, приведенный выше удаляет атрибуты и присваивает нужные (в брекпоинтах), но нужно же как-то закрепить изменения, для того чтобы продолжить работу.
C#
1
doc.Save()//не работает или я его как-то не так применяю
Помогите сохранить изменения.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2018, 02:07
Ответы с готовыми решениями:

HtmlAgilityPack Парсинг href атрибута
Помогите пожалуйста спарсить href атрибут. Одни error'ы Как нужно правильно парсить? Я новичок...

Изменения атрибута src при нажатие на img
Пытаюсь сделать чтобы при нажатие на картинку изменялась её путь (src). Вот код <img id="like"...

Селектор атрибута с префиксом пространства имён в имени атрибута
Здравствуйте. Нужна помощь. В сети так и не нашла ответ на свой вопрос. Есть элемент: <div...

Как поменять картинку при наведении мышью на элемент ? т.е <img> to <img>
есть например вот такой вот код: &lt;div class=&quot;row&quot;&gt; &lt;div class=&quot;col-xs-12&quot;&gt; ...

7
Администратор
Эксперт .NET
13861 / 11236 / 4570
Регистрация: 17.03.2014
Сообщений: 22,652
Записей в блоге: 1
01.03.2018, 12:30 2
Цитата Сообщение от MonteShot Посмотреть сообщение
//не работает или я его как-то не так применяю
В чем именно это выражается?

Цитата Сообщение от MonteShot Посмотреть сообщение
doc.DocumentNode.SelectNodes("//*[@id="dont_copy"]/p[*]/img")
Я бы переписал так:
C#
1
doc.GetElementbyId("dont_copy").SelectNodes("p[*]/img")
Это ускорит парсинг.
0
0 / 0 / 2
Регистрация: 08.12.2013
Сообщений: 14
01.03.2018, 13:44  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В чем именно это выражается?
Смотрите: у меня есть Хтмл. Я его загрузил. Далее я ищу контент.
C#
1
doc.DocumentNode.SelectNodes("//*[@id=\"dont_copy\"]/p[*]/img"))
И начинаю перебирать картинки удаляя все атрибуты и назначая свои. В цикле foreach это и происходит(как я думаю).

Но на выходе неизменный код.
Как получить измененный код?
0
Администратор
Эксперт .NET
13861 / 11236 / 4570
Регистрация: 17.03.2014
Сообщений: 22,652
Записей в блоге: 1
01.03.2018, 13:48 4
MonteShot, цикл foreach точно выполняется? Может xpath не находит ни одного элемента.
0
0 / 0 / 2
Регистрация: 08.12.2013
Сообщений: 14
01.03.2018, 13:58  [ТС] 5
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Может xpath не находит ни одного элемента.
Вот, только что запустил
В начале:
Переписывание атрибута для img с HtmlAgilityPack

В конце:
Переписывание атрибута для img с HtmlAgilityPack


Я не могу допереть почему нет изменений.
0
Администратор
Эксперт .NET
13861 / 11236 / 4570
Регистрация: 17.03.2014
Сообщений: 22,652
Записей в блоге: 1
01.03.2018, 15:13 6
MonteShot, в цикл заходит, ок. Возможно ошибка в самом XPath. Попробуй так: "//*[@id="dont_copy"]/p[@*]/img"
0
0 / 0 / 2
Регистрация: 08.12.2013
Сообщений: 14
01.03.2018, 15:27  [ТС] 7
Благодарю и извините за беспокойство. Я оказывается работал в разных контекстах. Я думал, что работал с объектом переданным во ViewModel, а оказалось, что я породил объект HtmlDocument и работал с ним. И почему-то думал, что это нужный объект.
Тему можно считать закрытой. Спасибо.
0
Администратор
Эксперт .NET
13861 / 11236 / 4570
Регистрация: 17.03.2014
Сообщений: 22,652
Записей в блоге: 1
01.03.2018, 15:34 8
MonteShot, ясно. Бывает. Главное что разобрались.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2018, 15:34

Как на JS изменить все теги <img></img> на странице?
Приветствую. Требуется поменять все &lt;img&gt; &lt;/img&gt; на странице html, а именно сделать замену....

Как защитить от взлома через [img] [/img] BBcode
Добрый день! На сайте реализованы некоторые возможности BBcode в комментировании... Я так понимаю...

При скрытии img в media queries сбивается выравнивание остальных img, сделанное на flex. Как пофиксить?
У меня есть 12 картинок. Выравнивание сделанное с помощью flex. В media queries мне нужно скрыть 6...

Сделать перенаправление с img.png на img.php
Всем привет. Столкнулся с проблемой. В общем, создал файл img.php. В этом файле создаётся...

безразмерное все, в блоках div img-relative, надо поставить в одну точку второй img как подложку
безразмерное все, в блоках div img-relative, надо поставить в одну точку второй img как подложку....

HTMLAgilityPack: Получить value для тега <option>
Приветствую всех небезразличных, Помогите, плз, кодом. При помощи HTMLAgilityPack нужно получить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.