Редактирование HTML-файла, такого как файл XML
Вопрос
Мне нужно преобразовать файл HTML в формат ixbrl. Формат IXBRL в основном является HTML с некоторыми встраиваемыми узлами или некоторой информацией файла HTML, завернутой под тегами IXBRL. Для этого мне нужно будет искать и удалять некоторые узлы из HTML-файла и обернуть некоторые узлы под тегами IXBRL.
Я не могу использовать XML DOM, так как он стреляет исключение на тип контента. .NET HTMLDocument Class не поддерживает удаление узлов и заменив их, ни я не мог видеть опцию Сохранить.
Я попытался использовать HTML Agility Package, но он не может найти узлы из-за пространств имен в имени узла, и у него нет возможности указывать пространства имен (линейный менеджер пространства имен в .NET).
Могу ли я указать пространство имен в выражении XPath? Как?
Может кто-нибудь помочь мне в редактировании файлов HTML (или XHTML) с помощью .NET или любой бесплатной библиотеки.
Решение
Если вы хотите использовать XPath с пространствами имен, вам просто нужно префикнуть узлы правым пространством имен.
Если ваше пространство имен выглядит так:
xmlns:xbrli="http://www.xbrl.org/2003/instance"
И ваши элементы такие:
<root>
<xbrli:elementname></xbrli:elementname>
<root>
Тогда вы можете выбрать их в XPath, как:
//xbrli:elementname