Требования к преобразованию HTML в объект DOM

Преобразование содержимого HTML в mlreportgen.dom.HTML или mlreportgen.dom.HTMLFile объект, HTML содержимого должен быть XML-синтаксическим. HTML содержимого является XML-синтаксическим, когда он соответствует правилам для правильно сформированного XML, таким как:

  • Включите закрывающий тег для всех элементов.

  • Используйте нижний регистр для тегов открытия и закрытия (начальный и конечный) элемента. Для примера используйте <p> и </p> для элемента абзаца, а не <P> и </P>.

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

  • Заключайте значения атрибутов в кавычки. Для примера используйте <p align="center"></p>.

Для получения дополнительной информации см. W3Schools сводные данные правил XML в www.w3schools.com/xml/xml_syntax.asp.

Совет

Чтобы сделать HTML содержимого XML-синтаксическим, можно использовать mlreportgen.utils.html2dom.prepHTMLString, mlreportgen.utils.html2dom.prepHTMLFile, и mlreportgen.utils.tidy. Смотрите раздел Подготовка HTML перед преобразованием.

Поддерживаемые элементы и атрибуты HTML

В этой таблице показаны элементы и атрибуты HTML, поддерживаемые при преобразовании HTML в объект DOM. Неподдерживаемые элементы и атрибуты игнорируются.

Элемент HTMLПризнаки
aclass, style, href, name
addressclass, style
bclass, style
bigclass, style
blockquoteclass, style
bodyclass, style
brn/a
centerclass, style
citeclass, style
codeclass, style
ddclass, style
delclass, style
dfnclass, style
divclass, style
dlclass, style
dtclass, style
emclass, style
fontclass, style, color, face, size
h1, h2, h3, h4, h5, h6class, style, align
hrclass, style, align
iclass, style
insclass, style
imgclass, style, src, height, width
kbdclass, style
liclass, style
markclass, style
nobrclass, style
olclass, style
pclass, style, align
preclass, style
sclass, style
sampclass, style
smallclass, style
spanclass, style
strikeclass, style
strongclass, style
subclass, style
supclass, style
tableclass, style, align, bgcolor, border, cellspacing, cellpadding, frame, rules, width
tbodyclass, style, align, valign
tfootclass, style, align, valign
theadclass, style, align, valign
tdclass, style, bgcolor, height, width, colspan, rowspan, align, valign, nowrap
thclass, style, bgcolor, height, width, colspan, rowspan, align, valign, nowrap
trclass, style, align, bgcolor, valign
ttclass, style
uclass, style
ulclass, style
varclass, style

Для получения информации об этих элементах смотрите https://developer.mozilla.org/en-US/docs/Web/HTML/Element.

Поддерживаемые атрибуты стиля CSS HTML для всех элементов

Можно использовать атрибуты стиля HTML для форматирования HTML- содержимого, добавляемых к отчету DOM. Атрибутом стиля является строка каскадных таблиц стилей (CSS) форматов.

Поддерживаются следующие форматы CSS:

  • background-color

  • border

  • border-bottom

  • border-bottom-color

  • border-bottom-style

  • boder-bottom-width

  • border-color

  • border-left

  • border-left-color

  • border-left-style

  • boder-left-width

  • border-right

  • border-right-color

  • border-rigtht-style

  • border-right-width

  • border-style

  • border-top

  • border-top-color

  • border-top-style

  • border-top-width

  • border-width

  • color

  • counter-increment

  • counter-reset

  • display

  • font-family

  • font-size

  • font-style

  • font-weight

  • height

  • line-height

  • list-style-type

  • margin

  • margin-bottom

  • margin-left

  • margin-right

  • margin-top

  • padding

  • padding-bottom

  • padding-left

  • padding-right

  • padding-top

  • text-align

  • text-decoration

  • text-indent

  • vertical-align

  • white-space

  • width

Для получения информации об этих форматах https://developer.mozilla.org/en-US/docs/Web/CSS/Reference.

Поддержка HTML символьных Сущностей

Можно добавить HTML содержимого которая включает специальные символы, такие как британский фунт, знак доллара США или зарезервированные символы разметки XML. Специальные символы разметки XML >, <, &, ", и '. Для включения специальных символов используйте HTML или числовые символьные ссылки. Для примера, чтобы включить левый угол скобку (<) в HTML содержимого, которую вы хотите добавить, используйте одну из следующих ссылок на сущность символов:

  • Именованная символьная сущность ссылается на &lt;

  • Числовой символ сущности ссылку &003c;

Для получения дополнительной информации см. раздел https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references.

Декларация DOCTYPE

HTML содержимого, которая добавляется к отчету DOM, не должна включать объявление типа документа (см. https://en.wikipedia.org/wiki/Document_type_declaration). Если содержимое содержит объявление типа документа, оно должно соответствовать следующим условиям:

  • Если содержимое содержит ссылки на сущности символов (специальные символы), то в объявлении типа документа должна содержаться ссылка на определение типа документа (DTD), которое определяет объекты-ссылки. Для примера следующее объявление задает файл DTD, который задает все HTML символа сущности:

    <!DOCTYPE html SYSTEM "html.dtd">

    The html.dtd включен в MATLAB® Report Generator™ программном обеспечении.

  • Если объявление типа документа ссылается на файл DTD, допустимый файл DTD должен существовать по пути, заданному объявлением. В противном случае добавление содержимого приводит к ошибке анализа DTD. Для примера следующее объявление вызывает ошибку анализа:

    <!DOCTYPE html SYSTEM "foo.dtd">
  • Если добавляемое содержимое не содержит ссылок на символьные сущности, объявление типа документа не должно ссылаться на файл DTD. Например, следующая декларация работает для содержимого, которое не использует специальные символы:

    <!DOCTYPE html>

Совет

Чтобы избежать проблем с объявлением типа документа, удалите объявления из существующего HTML содержимого, которые планируется добавить к отчетам DOM. Если содержимое не содержит объявления, DOM готовит допустимое объявление, которое определяет весь набор HTML символа сущности.

Похожие темы