Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
5 / 5 / 2
Регистрация: 31.07.2010
Сообщений: 62

HtmlElement

02.09.2010, 17:45. Показов 3513. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в переменной
C#
1
string text;
содержится html код. В коде есть строка:
HTML5
1
<input type="hidden" name="sid" value="5f9bc276643de109c53be16455672e55" />
Как из этой строки извлечь
HTML5
1
5f9bc276643de109c53be16455672e55
используя
C#
1
HtmlElement
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2010, 17:45
Ответы с готовыми решениями:

HtmlElement
Можно ли использовать HtmlElement для введения данных по подобию GetElementById(&quot;name&quot;).SetAttribute(&quot;value&quot;, &quot;1&quot;); ...

HtmlElement.Focus()
Добрый вечер. Возможно ли взять в фокус вот эту кнопку ? &lt;li&gt;&lt;a...

Htmlelement вылетает
HtmlElement htmleltemp = null; for (int m = 0; m &lt;...

7
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
02.09.2010, 23:27
Напрямую - никак. Он не работает с аттрибутами тегов.
Есть 2 варианта.
1) Вытащить OuterHTML - это строка, проинициализировать им XMLNode, получить нужную строчку через обращение к атрибуту по имени.
2) Вытащить OuterHTML, затем с помощью IndexOf найти "value", затем открывающуюся кавычку, затем закрывающуюся кавычку, затем взять SubString.

Второй метод более надёжный, потому что в общем случае при работе с HTML иногда более надёжно ручками, поскольку сайтоваятели плевать хотели на закрыввние тегов, и тогда XMLNode перестаёт работать и вы начинаете выбраковывать источники данных, что не всегда приемлемо.

Можно ещё с регекспами поиграться.
0
5 / 5 / 2
Регистрация: 31.07.2010
Сообщений: 62
03.09.2010, 06:23  [ТС]
Цитата Сообщение от ksk Посмотреть сообщение
Напрямую - никак. Он не работает с аттрибутами тегов.
Есть 2 варианта.
1) Вытащить OuterHTML - это строка, проинициализировать им XMLNode, получить нужную строчку через обращение к атрибуту по имени.
2) Вытащить OuterHTML, затем с помощью IndexOf найти "value", затем открывающуюся кавычку, затем закрывающуюся кавычку, затем взять SubString.

Второй метод более надёжный, потому что в общем случае при работе с HTML иногда более надёжно ручками, поскольку сайтоваятели плевать хотели на закрыввние тегов, и тогда XMLNode перестаёт работать и вы начинаете выбраковывать источники данных, что не всегда приемлемо.

Можно ещё с регекспами поиграться.
Можно код, не совсем понимаю
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
03.09.2010, 22:33
Ну, вот например, хотим выпарсить мыло из такой строчки:

C#
1
String StrToParse = "Всякая фигня<a href="mailto:username@servername.ru"><span>E-mail</span></a>Ещё всякая фигня";
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int y1;
int y2;
y1 = StrToParse.IndexOf("<span>E-mail</span>"); if (y1 >= 0)
{
  y1 = StrToParse.Substring(0, y1).LastIndexOf("<a"); if (y1 >= 0)
  {
     y2 = StrToParse.IndexOf("</a>", y1); if (y2 < 0) continue; y2 += "</a>".Length;
     y1 = StrToParse.IndexOf("mailto:", y1); if (y1 < y2)
     {
        y2 = StrToParse.IndexOf("\"", y1); if (y2 > y1)
        {
          s = StrToParse.Substring(y1, y2 - y1);
          firm_Mail = s.Replace("mailto:", ""); // Сюда кладём мыло
         }
      }
    }
  }
Этот метод называется "ручками"

Добавлено через 1 минуту
Ну, вот например, хотим выпарсить мыло из такой строчки:

C#
1
String StrToParse = "Всякая фигня<a href="mailto:username@servername.ru"><span>E-mail</span></a>Ещё всякая фигня";
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int y1;
int y2;
y1 = StrToParse.IndexOf("<span>E-mail</span>"); if (y1 >= 0)
{
  y1 = StrToParse.Substring(0, y1).LastIndexOf("<a"); if (y1 >= 0)
  {
     y2 = StrToParse.IndexOf("</a>", y1); if (y2 < 0) continue; y2 += "</a>".Length;
     y1 = StrToParse.IndexOf("mailto:", y1); if (y1 < y2)
     {
        y2 = StrToParse.IndexOf("\"", y1); if (y2 > y1)
        {
          s = StrToParse.Substring(y1, y2 - y1);
          firm_Mail = s.Replace("mailto:", ""); // Сюда кладём мыло
         }
      }
    }
  }
Этот метод называется "ручками"
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
28.02.2011, 14:46
не понял ничо, а почему не катит
C#
1
 ((HtmlElement)(our_object)).SetAttribute(our_attribute,value_our_attribute);
аналогичен метод
C#
1
 GetAttribute();
Добавлено через 3 минуты
а у меня вот вопрос
вот код мой типа
C#
1
2
3
4
5
6
  HtmlElement htmleltemp=???;
                                for (int m = 0; m < jhjh[a].Children[f].Children.Count; m++)
                                {
                                    if ((jhjh[a].Children[f].Children[m].TagName == "TD") || (jhjh[a].Children[f].Children[m].TagName == "td"))
                                        htmleltemp.AppendChild(jhjh[a].Children[f].Children[m]);
                                }
что надо вместо вопросиков поставить чтоб правильно инициализировал обьект да так чтоб он был как бы пустой и чтоб не выбивало на строке добавления ребенка?
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
01.03.2011, 20:08
В частном случае катит, а в общем может не катить, потому что часть сайтов верстается кем попало и как попало и в каждом конкретном случае приходится приноравливаться к отклонениям от традиционных методов формирования тегов. Распарсив множество сайтов я пришёл к ручной настройке разбора тегов, потому что то тут одно, то там другое.

По поводу второго вопроса - я подобные вопросы решал переопределением родителя. То есть у меня была заготовка страницы, в которой я брал тег, используемый в качестве затравки и вставлял в него InnerHTML в виде динамически сформированной строки.

А просто HTMLElement, висящий в воздухе - я не знаю, может ли такое быть, пробовать надо. Но пустой элемент вряд ли может существовать, я так думаю. Попробовать можно вместо вопросиков 'new HtmlElement(чегототам)', но что задать в качестве параметров конструктора - надо курить MSDN.
2
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
02.03.2011, 11:41
а вот как можно удалить какой либо HtmlElement из HtmlElementCollection?
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
02.03.2011, 23:12
Ни разу не пробовал.
Если не получится, можно попытаться у типа HtmlElementCollection "нащупать" метод, в имени которого есть Delete, принимающий на входе ссылку на детёныша, либо его индекс (у меня сейчас нет под рукой чтобы проверить). Если не удастся, то тогда можно попытаться обойти детёнышей, за исключением удаляемого, собрать в кучу их OutreHTML, затем подсунуть родителю эту кучу в качестве InnerHTML. Должно проканать, только после этого нужно иметь в виду, что старые ссылки на детёнышей, равно как и на их коллекцию, станут инвалидными.

Где-то так..
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2011, 23:12
Помогаю со студенческими работами здесь

HtmlElement
есть элемент &lt;span style=&quot;cursor: pointer;&quot; onmouseover=&quot;javascript:show_user(85);&quot; class=&quot;pur&quot;&gt;PIF&lt;/span&gt; помогите получить...

HtmlElement Select события выбора элемента
когда я в селекте выбираю элемент, происходит вызов скрипта который генерирует другие селекты. вот код которым я хотел эмулировать...

Преобразовать html-код, который имеет тип string, в HtmlElement
Надо преобразовать html-код, который имеет тип string, в HtmlElement. Через Convert вроде нельзя, (HtmlElement) тоже не помогло. Для...

Программа не находит HtmlElement в webBrowser
Здраствуйте. У меня такая проблема: Есть страница на которой есть 4 html елемента &lt;select&gt;. Проблема в том что как я не пытался к...

HTMLElement.prototype.YourMethod в Safari
Hi 2 all Vopros, vozmojno kakto podtzepiti etot interface v Safari? To esti, dobaviti novii method kak v mozilla: ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru