Существует ли очиститель HTML для .NET, который может анализировать HTML и (например) преобразовывать его в более удобный для машин формат, такой как XHTML ?
Я пробовал HTML Agility Pack, но он не может правильно проанализировать даже довольно простых примеров.
Чтобы привести пример HTML, который должен быть правильно проанализирован:
<html><title>test</title>
<body>
<ul><li>TestElem1
<li>TestElem2
<li>TestElem3 List:
<ul><li>Nested1
<li>Nested2</li>
<li>Nested3
</ul>
<li>TestElem4
</ul>
<p>paragraph 1
<p>paragraph 2
<p>paragraph 3
</body></html>
Теги
li
не нужно закрывать ( см. Спецификацию ), а также не делают теги P
. Другими словами, приведенный выше пример должен быть проанализирован как:
<html><title>test</title>
<body>
<ul><li>TestElem1</li>
<li>TestElem2</li>
<li>TestElem3 List:
<ul><li>Nested1</li>
<li>Nested2</li>
<li>Nested3</li>
</ul></li>
<li>TestElem4</li>
</ul>
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
</body></html>
Поскольку целью является использование библиотеки на разных машинах, большой недостаток заключается в необходимости прибегать к нативному коду (например, к обертке вокруг HTML Tidy ), что потребует дополнительных хлопот и жертв при развертывании независимость от платформы, не говоря уже о невозможности в сценариях с песочницей.
Есть предложения?
Напомним, я ищу:
- Очиститель HTML аля HTML Tidy
- Должен уметь работать с реальным HTML, а не только с XHTML, по крайней мере с правильным чтением действительного HTML 4
- Должен быть в состоянии преобразовать в более легко обрабатываемый формат XML
- Должно быть чисто управляемым приложением.