Парсинг HTML без использования сторонних библиотек - C#
Формулировка задачи:
Доброго времени суток всем кто читает сеё сообщение %)
Прошу помочь кодом, советами, примером, мыслями и т.д. в распарсивании html файла только средствами С#. Всем заранее огромное спасибо.
При наличии такой таблицы необходимо забрать данные из:
данные в этой строке всегда уникальные
Вопрос с определение присутствует ли нужная нам таблица или нет вроде как решается сим способом однако как получить данные из следующей строки (другой ячейки таблицы) я понять не могу, не хватает знаний языка и опыта. (использовать другую среду разработки нельзя как и сторонние библиотеки, кроме того нельзя и грузить в веббраузер... получается что остаётся только как то регулярками мучать ((( )
Задача:
необходимо без помощи сторонних библиотек используя возможности только c# распарсить Html файл находящийся на локальном диске (файл создаётся сторонней программой) и выяснить есть ли в данном файле среди ничем не примечательных таблиц одна определённая и если есть то из определённой ячейки забрать нужные данные.Вводные данные:
сторонняя программа формирует свои выходные данные в html формате при этом все данные идут в куче таблиц которые не имеют ни каких отличительных друг от друга признаков. Таблица как может существовать так и нет. Ниже приведена нужная нам таблица.... <TABLE width="100%"> <TBODY> <TR> <TD width="50%">Наименование ОППЗЛ</TD> <TD width="50%">МЕЧЕЛ-ФОНД ОППЗЛ</TD></TR> <TR> <TD width="100%" colSpan=2 align=middle>Системный номер документа Заявление ответственного лица</TD></TR> <TR> <TD width="100%" colSpan=2 align=middle>052013 20060011350 ( 044 ) 01</TD></TR> <TR> <TD width="50%">№ заявления 052T007-0000845</TD> <TD width="50%">от 26.10.2006</TD></TR></TBODY></TABLE> ...
<TD width="50%">МЕЧЕЛ-ФОНД ОППЗЛ</TD></TR>
Что сделано:
пошёл в таком ключе (набросок)using (OpenFileDialog ofdOpen = new OpenFileDialog() { Filter = "Хтмл|*.htm" }) { if (ofdOpen.ShowDialog() != DialogResult.OK) return; StreamReader myStreamReader = new StreamReader(ofdOpen.FileName, Encoding.Default); string html = myStreamReader.ReadToEnd(); string Search = "Наименование ОППЗЛ"; // ищу по этой строке она определяет есть таблица или нет Match match = Regex.Match(html, Search); MessageBox.Show(match.Groups[0].ToString()); // тут соответственно пустота если нет таблицы или искомая строка если есть }
Решение задачи: «Парсинг HTML без использования сторонних библиотек»
textual
Листинг программы
using System.Text.RegularExpressions; string text = "твой html"; string result = ""; foreach(Match Tag in Regex.Matches(text, @"<TD width=""\d+\%"">(?<text>.*?)</TD>")) result += Tag.Groups["text"].Value + "\r\n";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д