Как разобрать HTML-как-строку, чтобы получить его атрибуты элементов с C #? - PullRequest
2 голосов
/ 22 марта 2012

Предположим, я получаю таблицу HTML в виде строки, и я хочу - используя C # - разделить ее на ее элементы (td, div - если есть и т. Д.) И получить каждый из их атрибутов, таких как 'style', 'class' ...

Моя цель - в конечном итоге получить таблицу HTML и построить из нее собственный объект таблицы, сохранив большинство (если не все) атрибутов таблицы.Теперь, единственный способ, которым я могу думать об этом, кажется мне кошмаром кодирования: разбить строку на каждый из ее 'tr' и 'td' и начать копаться, ища каждый атрибут этого элемента и пытаясьпроанализируйте это с чем-то, с чем я могу работать - есть ли другой способ?

Пример:

string someString = "<div><table cellpadding="0" cellspacing="0"><tr><td style="border-bottom:1px solid transparent;width:1px;font-size:1px;height:1px;line-height:1px;"><div class="someClass">..."

станет (в моем гипотетическом объекте):

MyTable table = new MyTable
{
   CellPadding = "0",
   ...
}

MyTableRow row = new MyTableRow 
{
   Cell[0].Style.BorderBottom = "1px solid transparent",
   Cell[0].Style.Width = "1px",
   ...
}

Вы поняли:)

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Существует библиотека HtmlAgilityPack для анализа документов HTML и предоставления вам доступа к DOM в коде C #.

0 голосов
/ 22 марта 2012

Я бы также посоветовал вам взглянуть на SGMLReader , который представляет собой замену XMLReader, но обрабатывает плохо сформированный HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...