2012-03-24 4 views
0

При попытке использовать XMLWorkerHelper.GetInstance(). ParseXHTML() я считаю, что он действительно строгий. Любой неправильный порядок тегов или закрытых тегов заставит его исключать исключение., обрабатывающий itextsharp XMLWorkerHelper.ParseXHTML строгое поведение

Я конвертирую HTML, который я не контролирую.

Есть ли какие-либо флаги, чтобы сделать его менее строгим? Интерфейс обратного вызова для обработки смешной разметки? Что-нибудь в itextsharp.tools.xml.html? Или полностью новая библиотека, совместимая с itextsharp.text.IElement?

ответ

1

Название класса и этот метод в значительной степени суммирует его - вы не можете. Весь конвейер основан на предположении, что действительный XML-документ будет передан, а все остальное вызовет исключение. Вы можете настроить конвейер и добавить свои собственные обработчики для таких вещей, как разрешение ссылок, пользовательские свойства CSS и новые теги HTML, но для основного процессора документов по-прежнему необходим правильный HTML.

Я бы порекомендовал посмотреть running your HTML through a library that can convert it to XHTML.

EDIT

Также проверьте wkhtmltopdf. Он использует webkit для рендеринга HTML и делает (по-видимому) довольно хорошую работу.

+0

Спасибо Крис. До сих пор я не смотрел HTML Tidy и HTMLAgilityPack. Огромное узкое место здесь. – Jake

+0

@ Jake, я обновил свой ответ с помощью другого инструмента, чтобы попробовать –

Смежные вопросы