Вопрос

Я пытаюсь загрузить фрагмент (возможно) искаженного HTML-кода в объект XmlDocument, но это не удается с помощью XMLExceptions...поскольку существуют дополнительные открывающие / закрывающие теги и искаженные XML-теги, такие как <img > вместо того , чтобы <img />

Как мне заставить XML-файл анализироваться со всеми ошибками в данных?Есть ли какой-нибудь валидатор XML, который я могу применить перед синтаксическим анализом, чтобы исправить эти ошибки?Или обработка исключения будет анализировать все, что может быть проанализировано?

Это было полезно?

Решение

Тот самый HTML-пакет Гибкости будет анализировать html, а не xhtml, и вполне снисходителен.Объектная модель будет вам знакома, если вы уже использовали XmlDocument.

Другие советы

Возможно, вы захотите узнать ответ на этот вопрос.

По сути, где-то между .NET-портом beautifulsoup и пакетом гибкости HTML есть способ.

Маловероятно, что вы сможете создать XmlDocument с таким уровнем искаженной структуры.XmlDocument (насколько мне известно) требует, чтобы содержимое xml соответствовало правильному синтаксису вложенности и закрытия.

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

Если вы имеете дело только с HTML, есть Пакет гибкости HTML, который может послужить вашим целям.

В зависимости от конкретных потребностей вы можете использовать HTML аккуратный чтобы очистить документ, а затем импортируйте его с помощью объекта XMLDocument.

То, что вы пытаетесь сделать, очень сложно.HTML не может быть проанализирован с помощью синтаксического анализатора XML, поскольку XML является строгим, а HTML — нет.Если бы этот HTML был совместимым с XHTML (HTML как XML), то анализатор XML без проблем проанализировал бы HTML.

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

Другими словами, я еще не встречал синтаксического анализатора XML, который обрабатывал бы искаженный XML...они не предназначены для приема свободной разметки, такой как HTML (тоже по уважительной причине :) )

Вы не можете загрузить искаженный XML в XmlDocument.

Проверьте HTML-пакет гибкости на CodePlex

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top