HTML Agility Pack меняет тег </ p> на<p>при неверной разметке

С вводом:

<head><title>Title</title></head>
<font face="Verdana" size="2">
<p>

<b>Bold sentence.</b>
<br><br>Sentence after two  breaks.<br><br>Sentence after another two  breaks. <b><i>bold and italicized sentence.</i></b> sentence. <br><br>final sentence after two more breaks.

</font></p>

<form><center><div style='padding-left: 16px; padding-right: 16px;'><a class='button' href='javascript:void(0);' onclick='javascript:window.close()'><img src='/GBUIAssets/Web20/img/frame/buttonshade.png' alt='buttonShade' /><span class='roundLeft'><span class='roundRight'>Fermer</span></span></a></div></center></form></font>

Я удаляю голову, шрифт и форму. И вывод, который я получаю:

<p>

<b>Bold sentence.</b>
<br><br>Sentence after two  breaks.<br><br>Sentence after another two  breaks. <b><i>bold and italicized sentence.</i></b> sentence. <br><br>final sentence after two more breaks.

<p>

Это проблематично, потому что я пытаюсь преобразовать его в xml после, и это вызовет ошибку. Почему это "исправление" части моего кода, которая уже действительна? Есть идеи, что может быть причиной? Я могу предоставить больше кода, если это необходимо, но я просто хочу убедиться, что нет очевидного шага, который я пропускаю.

РЕДАКТИРОВАТЬ: ради полного контекста, я убираю HTML для его содержания тела. Поймай, этот HTML HIDEOUS. Действительно плохо отформатированный. Я загружаю его в XML, чтобы выбросить конкретные ошибки, которые не так с HTML-документа, и выкладываю это в отчет об ошибках для каждого файла, который не удалось удалить

2 ответа

Marpup является недействительным. Попробуйте поместить тег шрифта в сторону тега P, и все будет в порядке.

Обновите вашу разметку до:

<head>
  <title>Title</title>
</head>
<font face="Verdana" size="2">
<p>

<b>Bold sentence.</b>
<br/><br/>Sentence after two  breaks.<br/><br/>Sentence after another two  breaks. <b><i>bold and italicized sentence.</i></b> sentence. <br/><br/>final sentence after two more breaks.

</p>

<form>
<center>
<div style='padding-left: 16px; padding-right: 16px;'>
<a class='button' href='javascript:void(0);' onclick='javascript:window.close()'>
<img src='/GBUIAssets/Web20/img/frame/buttonshade.png' alt='buttonShade' />
<span class='roundLeft'><span class='roundRight'>Fermer</span></span>
</a>
</div>
</center>
</form>
</font>

Если возможно, я бы рекомендовал переместить <font> объявление во внешнюю таблицу стилей, например

body { font-face: Verdana; }
Другие вопросы по тегам