Как разобрать файл XHTML, который не на 100% действителен? - PullRequest
1 голос
/ 08 мая 2009

У меня есть файлы XHTML, источник которых не является полностью действительным, он не соответствует DTD документа XML.

Как есть места, где для " используется &Idquo; или для апострофов ’. Это вызывает исключения в моем коде C #.

Так есть ли какой-либо метод или любая веб-ссылка, которую я могу использовать, чтобы избавиться от этого?

Ответы [ 3 ]

4 голосов
/ 08 мая 2009

Если файл правильно сформирован, вы можете определить символьные объекты в своем собственном DTD.

Если файл неверно сформирован, HTML Agility Pack из CodePlex проанализирует его.

1 голос
/ 08 мая 2009

Вместо этого вы можете проанализировать документ как HTML , поскольку оба они в конечном итоге приводят к тому, что анализаторы DOM и HTML смеются над этими проблемами с кавычками. Придерживаясь идеи неизвестного HTML Tidy, вы можете затем сериализовать DOM обратно в действительный файл XHTML. (Это идентично использованию HTML Tidy, который в любом случае предположительно использует анализатор HTML, за исключением того, что вы делаете это из C # программно.)

0 голосов
/ 08 мая 2009

По природе XML он должен быть действительным, иначе он вообще не будет отображаться. Сначала я посмотрю, какие ошибки он генерирует с помощью валидатора W3C http://validator.w3.org/

Также рассмотрите возможность использования HTML tidy, который также можно настроить для исправления XML.

Мы используем hpricot для исправления нашего XML, но опять же мы создаем приложения для rails. Не уверен насчет C #

...