Это немного странно - изначально я думал, что, возможно, один из тегов <font>
(встроенный элемент) окружает элемент уровня блока, таким образом, вынуждая его убрать, и ошибка затем постепенно накапливается, нопосле запуска кода через простой (тупой) форматировщик HTML, похоже, все они довольно автономны.
Но включение Error Collection показывает нам, что происходит.Проблема, похоже, заключается в том, что, несмотря на свою автономность, HTML-очиститель закрывает тег <table>
, как только встречает первый <font>
, он не удаляет <font>
(как можно подумать):
Уведомление Строка 7, столбец 8: начата в строке 6, автоматически закрывается по
Ошибка Строка 10, столбец 8: атрибут стиля на удален
Уведомление Строка 11,Столбец 12: , начатый в строке 10, автоматически закрывается по
Уведомление Строка 11, столбец 12: запускается в строке 9 автоматически закрывается с помощью
Предупреждение Строка 31, столбец 8: Не нужно тег удален
Ошибка Строка 34, столбец 8: атрибут стиля в удален
Уведомление Строка 35, столбец 12: начато в строке 34 с автоматическим закрытием по
Предупреждение Строка 55, столбец 8: Ненужный тег удален
Предупреждение Строка 59, столбец 8: Ненужный тег удален
Предупреждение Строка 60, столбец 4: Ненужный тег удален
Уведомление Конец документа: тег начат в строке 66, закрытой в конце документа
Предупреждение Конец документа: Содержимое узла реорганизовано для обеспечения его модели содержимого
Это вывод демо , если вы выберете CollectErrors : Да и подключите следующий HTML:
<font face="Times New Roman" size="3">
</font>
<p style="margin: 0in 0in 0pt; line-height: 150%; mso-outline-level: 3;"><span style='color: black; line-height: 150%; font-family: "Arial","sans-serif"; font-size: 12pt; mso-ascii-theme-font: minor-bidi; mso-hansi-theme-font: minor-bidi; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;'>Recruitment methods</span></p>
<font face="Times New Roman" size="3">
</font>
<table style="border: currentColor; border-image: none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" border="1" cellspacing="0" cellpadding="0">
<font face="Times New Roman" size="3">
</font>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<font face="Times New Roman" size="3">
</font>
<td width="37" style="padding: 0in 5.4pt; border: 1pt solid windowtext; border-image: none; width: 27.95pt; background-color: transparent; mso-border-alt: solid windowtext .5pt;">
<font face="Times New Roman" size="3">
</font>
<p align="center" style="margin: 0in 0in 0pt; text-align: center; line-height: normal;"><span style='font-family: "Arial","sans-serif"; mso-ascii-theme-font: minor-bidi; mso-hansi-theme-font: minor-bidi; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;'><font size="3">No.</font></span></p>
<font face="Times New Roman" size="3">
</font>
</td>
<font face="Times New Roman" size="3">
</font>
<td width="180" style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; border-image: none; width: 134.95pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
<td width="210" style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; border-image: none; width: 157.5pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
<td width="211" style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; border-image: none; width: 2.2in; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
</tr>
<font face="Times New Roman" size="3">
</font>
<tr style="mso-yfti-irow: 1;">
<font face="Times New Roman" size="3">
</font>
<td width="37" style="border-width: 0px 1pt 1pt; border-style: none solid solid; border-color: rgb(0, 0, 0) windowtext windowtext; padding: 0in 5.4pt; border-image: none; width: 27.95pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;">
<font face="Times New Roman" size="3">
</font>
<p align="center" style="margin: 0in 0in 0pt; text-align: center; line-height: normal;"><span style='font-family: "Arial","sans-serif"; mso-ascii-theme-font: minor-bidi; mso-hansi-theme-font: minor-bidi; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;'><font size="3">1</font></span></p>
<font face="Times New Roman" size="3">
</font>
</td>
<font face="Times New Roman" size="3">
</font>
<td width="180" style="border-width: 0px 1pt 1pt 0px; border-style: none solid solid none; border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; width: 134.95pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
<td width="210" style="border-width: 0px 1pt 1pt 0px; border-style: none solid solid none; border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; width: 157.5pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
<td width="211" style="border-width: 0px 1pt 1pt 0px; border-style: none solid solid none; border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 0); padding: 0in 5.4pt; width: 2.2in; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;"> </td>
<font face="Times New Roman" size="3">
</font>
</tr>
<font face="Times New Roman" size="3">
</font><font face="Times New Roman" size="3">
</font>
</tbody>
</table>
<font face="Times New Roman" size="3">
</font>
<p align="center" style="margin: 0in 0in 10pt; text-align: center;"><span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 12pt; mso-ascii-theme-font: minor-bidi; mso-hansi-theme-font: minor-bidi; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;'> </span></p>
<font face="Times New Roman" size="3">
</font>
<p style="margin: 0in 0in 10pt;"><font face="Times New Roman" size="3">
</font><br>
Есть другая ветка на форуме HTML Purifier , которая может сделать это немного более понятным.Симптомы были описаны так:
Когда я пытаюсь очистить этот код:
<table>
<tr>
<td>
<li>fffff</li>
</td>
</tr>
</table>
Я получаю:
<table>
<tr>
<td>
</td>
</tr>
</table>
fffff
И (мойХех) Ответ тогда:
Я предполагаю, что происходит то, что очиститель HTML обнаруживает, что
нельзя открыть в этой позиции - но вместо того, чтобы сначала убрать , он автоматическив этот момент закрывает другие открытые теги, в результате чего (изначально) получается:
<table>
<tr>
<td>
</td>
</tr>
</table>
<li>fffff</li>
</td>
</tr>
</table>
Затем удаляются посторонние закрывающие теги ...
<table>
<tr>
<td>
</td>
</tr>
</table>
<li>fffff</li>
И затем удаляется
, в результате чегов том, что наблюдается:
<table>
<tr>
<td>
</td>
</tr>
</table>
fffff
Вы можете попробовать переключить Lexer на DirectLex и посмотреть, изменит ли это поведение, но я сомневаюсьэто - вы можете застрять с этим поведением.Дай ему вихрь.