Когда я понял, что мне нужно создать индекс приблизительно для 50 страниц XHTML, который может быть добавлен / удален / переименован / перемещен в будущем, я подумал: «Нет проблем - я напишу быстрый генератор индексов с использованием LINQ для XML, поскольку XHTML определенно считается XML ".
Конечно, как только я попытался запустить его, я узнал о том факте, что XLINQ душит сущности XHTML, такие как & nbsp ;. Я обошел это с помощью следующего алгоритма:
- Считать файл XHTML в строку.
- Используйте поиск по регулярному выражению и замену в этой строке, чтобы добавить в DOCTYPE раздел, который определяет все соответствующие сущности (потому что меня волнует только атрибут title в файлах, которые я читаю, и мой выходной файл сейчас не использует никаких сущностей , он просто устанавливает их все пустыми, но я могу добавить фактические значения позже).
- Разбирает результат в XDocument.
Чтобы сохранить файл, я делаю наоборот:
- Сохранить XDocument в строку.
- Удалите определения сущностей.
- Сохранить в файл.
У меня вопрос: есть ли какие-нибудь библиотеки (особенно встроенные .Net), которые я могу использовать, чтобы читать файлы XHTML в XDocuments? Код, который я написал, выполнил свою задачу (сгенерировать текущий индекс и протестировать остальную часть программы-генератора), и я действительно предпочел бы не тратить время на его тестирование, если кто-то уже написал и протестировал то же самое.
Спасибо вам всем за ваше время,
Риа.
Редактировать: Большое вам спасибо; это работает! При сохранении XHTML мне все еще приходится выполнять небольшую обработку строк (думаю, библиотека на самом деле не была создана для этого :)), и мне пришлось немного поиграться с исходным пакетом Agility Pack, чтобы он прекратил беспорядочную вставку раздела CDATA. вокруг всех атрибутов стиля (даже если их уже было), но в этом смысл Open Source, верно?