Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HtmlElement, webBrowser 
:(
    Опции темы
Cobalt
Дата 16.8.2010, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Цитата(diadiavova @  16.8.2010,  20:17 Найти цитируемый пост)

Цитата(Cobalt @  16.8.2010,  20:15 Найти цитируемый пост)
с# 2005 express не поддерживает linq что ли ?

 smile 
Или поставь более позднюю версию или по старинке - циклами. 
Код

List<HtmlElement> elements = new List<HtmlElement>();
foreach(HtmlElement el in webbrowser1.Document.GetElementsByTagName("td"))
{
    if(el.GetAttribute("class") == "tab_head")
    {
        elements.Add(el);
    }
}

В коллекцию elements добавляются все ячейки с заданным классом.

Или можно попробовать подключить библиотеку System.Core и импортировать пространство System.Linq, только синтаксис будет другим
Код

IEnumerable<HtmlElement> = Enumerable.Where(webbrowser1.Document.GetElementsByTagName("td"),
                                                 delegate (HtmlElement x) {return x.GetAttribute("class") == "tab_head";});

Но это уже совсем другая песня. smile


хе хе, снес 2005 экспресс, поставил 2008 экспресс, таже фигня  smile  опять сносить и искать полную версию не хотца
то ли лыжи не едут, то ли...
решил по старинке, не пашет, я и так и эдак, не пашет, дело видать в том что он class не опознает, что возмутительно smile  
а по ширине например работает  smile 

if (el.GetAttribute("width") == "133")

дело наверное в этом 
Атрибутом элемента HTML является любая допустимая пара "имя-значение" для этого элемента. Класс HtmlElement предоставляет доступ только к атрибутам, общим для всех элементов, но не к тем, которые применяются только к определенным типам элементов. Например, атрибут SRC является предопределенным для тега IMG, но не для тега DIV.

наверное будут у меня еще вопросы  smile 

--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 16.8.2010, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(Cobalt @  16.8.2010,  23:49 Найти цитируемый пост)
, поставил 2008 экспресс, таже фигня    опять сносить и искать полную версию не хотца

Дело не в версии(с ней порядок), а в целевом фреймворке проекта, должен быть 3.5.
Цитата(Cobalt @  16.8.2010,  23:49 Найти цитируемый пост)
дело видать в том что он class не опознает, что возмутительно

Точно, совсем забыл. smile 
Вместо 
Код

el.GetAttribute("class")

сделай так
Код

el.DomElement.GetType().GetProperty("className").GetValue(el.DomElement, null)



Это сообщение отредактировал(а) diadiavova - 16.8.2010, 23:49


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cobalt
Дата 17.8.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Цитата(diadiavova @  16.8.2010,  23:13 Найти цитируемый пост)
Дело не в версии(с ней порядок), а в целевом фреймворке проекта, должен быть 3.5.

ха, точно, я взял тот проект, студия его переконвертила, не знал про это, вроде стоит 3,5, но не хочет линк понимать, ну да фиг с ним 


 
Код

        el.DomElement.GetType().GetProperty("className").GetValue(el, null)



это выше моего понимания  smile , мож я неправильно использую, поэтому и ругается 
В экземпляре объекта не задана ссылка на объект.

попробую использовать свойство строк Contains, или че нить типа того ) 
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 17.8.2010, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(Cobalt @  17.8.2010,  01:02 Найти цитируемый пост)
это выше моего понимания   , мож я неправильно использую, поэтому и ругается 

там поначалу была ошибка, но я ее исправил, а у тебя старая версия кода.

Добавлено через 2 минуты и 50 секунд
Вообще, для работы с DOM лучше подключить библиотеку mshtml  и работать с ней, тогда будет доступ ко всем возможностям.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
diadiavova
Дата 17.8.2010, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Короче, пример состряпал. Здесь я выбираю дивы, у которых class="odd" и вывожу их содержимое в окно сообщений. 

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  wbsample.rar 37,51 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cobalt
Дата 17.8.2010, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



diadiavova,  не хочу надоедать  smile  но таже самая ошибка в примере
В экземпляре объекта не задана ссылка на объект.
если у Вас все ок значит чето у меня не того  smile  
буду думать ) 
спасибо за потраченное на меня время =)

Это сообщение отредактировал(а) Cobalt - 17.8.2010, 17:47
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 17.8.2010, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(Cobalt @  17.8.2010,  18:46 Найти цитируемый пост)
но таже самая ошибка в примере

В том примере, который я выложил? smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cobalt
Дата 17.8.2010, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Цитата(diadiavova @  17.8.2010,  19:37 Найти цитируемый пост)
В том примере, который я выложил?  

аха, он на работе не пахал у меня, т.е. запускался а мессандж бокса нет
дома прикрутил кнопку, и там уже ошибка  smile 

я короче подумал и сделал по простому, 

 
Код

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("td"))
          {

              if (el.OuterHtml.Contains("class=tab_head") == true)
              {
                  try
                  {
                       elements.Add(el);
                    
                  }
                  catch { };

              }

           }
          elements.RemoveAt(0); //первый элемент приходится удалять так как он содержит все остальные


решение локально, ну да фиг с ним  smile 

я пока прогу буду писать уже и работа кончится  smile 

Это сообщение отредактировал(а) Cobalt - 17.8.2010, 19:51
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 17.8.2010, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(Cobalt @  17.8.2010,  20:45 Найти цитируемый пост)
аха, он на работе не пахал у меня, т.е. запускался а мессандж бокса нет
дома прикрутил кнопку, и там уже ошибка

Ну не знаю, я только что скачал, запустил и все работает. По-моему такого просто не бывает smile 
Тут может спасти только отладка, надо смотреть, какой именно объект не создается. Но это надо делать тебе, поскольку у меня все работает.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cobalt
  Дата 17.8.2010, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Цитата(diadiavova @  17.8.2010,  21:00 Найти цитируемый пост)
Ну не знаю, я только что скачал, запустил и все работает. По-моему такого просто не бывает 

аха smile  мистика какая то, скачал щаз по новой, запустил, так же как и на работе приложение запускается, страничка грузится, и все 
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 17.8.2010, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Я малость переделал, теперь сообщение выскакивает по нажатию кнопки. Попробуй запустить. Если опять не пойдет - поставь точку останова на мессэджбоксе и посмотри какого именно объекта не существует. 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  wbsample.rar 63,98 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cobalt
Дата 18.8.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



вообщем лана, подобрался я к основной сути проблемы, полученные данные надо записать  в html шаблон в нужные места, вот скажем имею я путь к шаблону.
далее создать надо наверное браузер и загрузить туда файл.
а дальше ....
есть в шаблоне такая таблица 

Код

 <table border= "0" CELLSPACING="1" CELLPADDING="0" WIDTH="700" bordercolorlight="#008080">
          <tr BGCOLOR="#DCE4E7">
            <td CLASS="headparam" width="215" height="32">
              
                Параметры
            </td>
            <td CLASS="headparam" width="474" height="32">&nbsp;</td>
              
          </tr>
          <tr BGCOLOR="#F0F4F5">
            <td CLASS="param" style="text-align: left">&nbsp;</td>
            <td CLASS="param" width="474" height="25">&nbsp;</td>
          </tr>
          </table>



есть значит List<HtmlElement> elements1, List<HtmlElement> elements2
скажем в первом содержится инфа для 1 столбца, во втором для второго для выше приведенной таблицы

какова последовательность действий для добавления в таблицу строк с нужными значениями, и сохранения всего этого файла


--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
Cobalt
Дата 18.8.2010, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



как с помощью OuterHtml задать код элементу? че то  не пойму  smile 
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
Cobalt
Дата 20.8.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



блин, запарился уже , не работает код и все

 HtmlElement td = webBrowser1.Document.CreateElement("TD");
            //  string rr = "<td CLASS=\"param\" style=\"text-align: left\">&nbsp;</td>";
            td.SetAttribute("CLASS", "param");
            td.Style = "text-align:left";
            td.InnerText = "ВАСЯЯЯ!!!!!!!";
            webBrowser1.Document.Body.AppendChild(td);
            
           
            webBrowser1.Document.Title = "ffdf";
            webBrowser1.Document.Write(webBrowser1.DocumentText);

            webBrowser1.Refresh();
            if (webBrowser1.Document != null)
            {


                richTextBox1.AppendText(webBrowser1.DocumentText);


            }

 smile 
           
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
diadiavova
Дата 21.8.2010, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Cobalt, с атрибутом class нужно работать через свойство className элемента.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.