exponenta event banner

Требования к преобразованию 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.

Совет

Чтобы сделать XML-синтаксический анализ содержимого HTML, можно использовать 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">

    html.dtd входит в состав программного обеспечения MATLAB ® Report Generator™.

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

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

    <!DOCTYPE html>

Совет

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

Связанные темы