Управляемая (.NET) библиотека с HTML Tidy-подобной функциональностью?

Существует ли очиститель 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
  • Должно быть чисто управляемым приложением.

1 ответ

Решение

Попробуйте TidyManaged.

Другие вопросы по тегам