Определение стиля форматирования
Необходимо разработать метод DefineStyle.
Описание метода
DefineStyle(pageUrl : string; pageContent : string; pageStyles:string; htmlPart: string; posIndex: int; ref styleSheets: Dictionary ) : HtmlStyle
Где:
pageUrl - url сайта
pageContent - контент веб страницы
pageStyle - стили форматирования данной страницы
htmlPart - часть html контента с тегами форматирования
posIndex - индекс позиции в htmlPart стиль которой определяется
styleSheets - таблицы стилей форматирования, где
key - относительный путь к таблице стилей - значение параметра ref, например
,то key="/css/main.css";
value - содержание данного файла.
HtmlStyle - возвращаемый класс - см. далее
В данном методе необходимо определить стиль форматирования в строке htmlPart в позиции номер posIndex.
Стиль форматирования определяется по тегам форматирования (, и т.п.) и по таблицам со стилями форматирования.
Таблицы стилей форматирования могут быть либо в контентенте данной страницы, либо в другом файле.
В параметре styleSheets представлены все ранее загруженные стили форматировния ()
В pageStyle - стили форматирования с данной страницы.
Use case по нахождению описания определенного класса:
1. Если pageStyle == null, значит стили форматирования с данной страницы еще никто не загружал. Находим описания всех стилей в pageContent. Кладем их в pageStyle (если стилей не найдено, то pageStyle = string.Empty). Ищем нужный стиль. Если не находим, то:
2. Пробегаем по всем файлам из styleSheets, если нашли нужный стиль - ОК. Если нет - продолжаем далее.
3. Определяем все ссылки на стили форматирования для данной страницы
4. Те, которые не представлены в styleSheets загружаем и ищем стиль форматирования там.
5. Добавляем загруженный файл в styleSheets.
Класс HtmlStyle
Свойства:
IsBold : bool // жирный
IsItalic : bool // курсивный
IsCrossOut : bool // зачеркнутый
IsUnderLine : bool // подчеркнутый
FontName : string // название шрифта
FontSize : double // размер шрифта
Color : Color// цвет
Align // расположение
Средстава разработки: C# VS2008