Разбор XHTML с DTD с использованием XDocument - PullRequest
2 голосов
/ 15 марта 2011

Мне нужно получить простой текст из документов XHTML.

Я уверен, что где-то здесь уже читал, что XDocument на WP7 не поддерживает DTD. Я не могу найти это все же. Хорошо, когда я пытаюсь проанализировать XHTML с DTD, используя XDocument, он выдает NotSuportedException. Последний вызов в stacktrace находится в System.Xml.XmlTextReaderImpl.ParseDoctypeDecl().

Это точно так же, даже если я пытаюсь использовать какой-то фиктивный XmlResolver - он не вызывается. (следующий ответ в на этот вопрос ).

Итак, я предполагаю, что WP7 на самом деле не поддерживает его.

Ну, мне нужно для разбора документов XHTML. До сих пор я придумал два (более или менее реальных) решения:
Я могу сделать это, если я удалю эту декларацию DTD. Но в XHTML может быть некоторая символьная сущность , и затем генерируется исключение, если эта символьная сущность не является одной из предопределенных сущностей XML .
Так что это решение работает только для некоторых XHTML.

Я думал об использовании Regex. Удалить все html-теги довольно просто, но «проблема сущностей» остается, так как я не думаю, что это реальное / хорошее решение - заменить все сущности.

Кто-нибудь сталкивался / решил это? Можете ли вы дать мне совет или исправить меня, если я ошибаюсь? Спасибо.

1 Ответ

5 голосов
/ 15 марта 2011

HTML Agility Pack - это библиотека для разбора html-документа, как утверждается на форуме, она имеет версию для WP7

http://htmlagilitypack.codeplex.com/discussions/225113

...