Вопрос

Мне нужно преобразовать HTML-документы в действительный XML, предпочтительно XHTML.Как лучше всего это сделать?Кто-нибудь знает набор инструментов/библиотеку/образец/... что угодно, что поможет мне выполнить эту задачу?

Чтобы внести немного большей ясности, мое приложение должно автоматически выполнять преобразование во время выполнения.Я не ищу инструмент, который поможет мне вручную переместить некоторые страницы в XHTML.

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

Решение

Преобразование из HTML в XML с помощью HTML Tidy

Загружаемые двоичные файлы

JRoppert, Думаю, тебе стоит взглянуть на Источники

c:\temp>tidy -help
tidy [option...] [file...] [option...] [file...]
Utility to clean up and pretty print HTML/XHTML/XML
see http://tidy.sourceforge.net/

Options for HTML Tidy for Windows released on 14 February 2006:

File manipulation
-----------------
 -output <file>, -o  write output to the specified <file>
 <file>
 -config <file>      set configuration options from the specified <file>
 -file <file>, -f    write errors to the specified <file>
 <file>
 -modify, -m         modify the original input files

Processing directives
---------------------
 -indent, -i         indent element content
 -wrap <column>, -w  wrap text at the specified <column>. 0 is assumed if
 <column>            <column> is missing. When this option is omitted, the
                     default of the configuration option "wrap" applies.
 -upper, -u          force tags to upper case
 -clean, -c          replace FONT, NOBR and CENTER tags by CSS
 -bare, -b           strip out smart quotes and em dashes, etc.
 -numeric, -n        output numeric rather than named entities
 -errors, -e         only show errors
 -quiet, -q          suppress nonessential output
 -omit               omit optional end tags
 -xml                specify the input is well formed XML
 -asxml, -asxhtml    convert HTML to well formed XHTML
 -ashtml             force XHTML to well formed HTML
 -access <level>     do additional accessibility checks (<level> = 0, 1, 2, 3).
                     0 is assumed if <level> is missing.

Character encodings
-------------------
 -raw                output values above 127 without conversion to entities
 -ascii              use ISO-8859-1 for input, US-ASCII for output
 -latin0             use ISO-8859-15 for input, US-ASCII for output
 -latin1             use ISO-8859-1 for both input and output
 -iso2022            use ISO-2022 for both input and output
 -utf8               use UTF-8 for both input and output
 -mac                use MacRoman for input, US-ASCII for output
 -win1252            use Windows-1252 for input, US-ASCII for output
 -ibm858             use IBM-858 (CP850+Euro) for input, US-ASCII for output
 -utf16le            use UTF-16LE for both input and output
 -utf16be            use UTF-16BE for both input and output
 -utf16              use UTF-16 for both input and output
 -big5               use Big5 for both input and output
 -shiftjis           use Shift_JIS for both input and output
 -language <lang>    set the two-letter language code <lang> (for future use)

Miscellaneous
-------------
 -version, -v        show the version of Tidy
 -help, -h, -?       list the command line options
 -xml-help           list the command line options in XML format
 -help-config        list all configuration options
 -xml-config         list all configuration options in XML format
 -show-config        list the current configuration settings

Use --blah blarg for any configuration option "blah" with argument "blarg"

Input/Output default to stdin/stdout respectively
Single letter options apart from -f may be combined
as in:  tidy -f errs.txt -imu foo.html
For further info on HTML see http://www.w3.org/MarkUp

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

Вы можете использовать Пакет гибкости HTML.Это проект с открытым исходным кодом от CodePlex.

А HTML-парсер Validator.nu поставляется с примером программы HTML2XML, которая выполняет преобразование с использованием алгоритма анализа HTML5 и правил приведения информационного набора.

Используйте Html2Xhtml для .NET 4.0:

Преобразование строки в строку в памяти:

var xhtml = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToEnd();

Преобразование строки в XDocument в памяти:

var xdoc = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToXDocument();

Видеть http://corsis.sourceforge.net/index.php/Html2Xhtml Чтобы получить больше информации.

http://corsis.sourceforge.net/index.php/Html2Xhtmlhttp://corsis.sourceforge.net/index.php/Html2Xhtml

Html2Xhtml — это библиотека .NET 4.0 для преобразования HTML в XHTML под лицензией GPLv2 или выше.

Я тестировал Html2Xhtml при локальной реконструкции большой онлайн-базы данных Европейского Союза.Tidy/Tidy.NET большую часть времени даже не выдавал действительный вывод, преобразование HTML в XML в Chilkat было немного медленным и давало странные результаты (неуместные, отсутствующие, необъяснимые элементы).В попытке найти бесплатный, быстрый и надежный инструмент конвертации я создал эту библиотеку.Она конвертирует в 2–4 раза быстрее, чем все остальные библиотеки, которые я тестировал.

Html2Xhtml в сочетании с возможностями LINQ to XML является отличным инструментом для всех сценариев крупномасштабного извлечения данных и сканирования веб-страниц.

вы можете конвертировать html в xhtml с помощью аккуратного исполняемого файла:

tidy -asxhtml -numeric <index.html > index.xhml

вы можете проверить реализацию С# здесь.

Самый простой способ — настроить интегрированную среду разработки Visual Studio так, чтобы она определяла изменения, которые необходимо внести.Вы можете сделать это в Visual Studio 2008, перейдя по адресу:Инструменты, Параметры, Текстовый редактор, HTML, Проверка и выбор подходящей цели.Возможно, XHTML 1.1 или XHTML 1.0 Transitional.

Для получения дополнительной информации о различных типах читайте:http://msdn.microsoft.com/en-us/library/aa479043.aspx

Затем вам нужно проработать пункты, выделенные на вашей странице.

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