Как конвертировать HTML в XHTML?[закрыто]
Вопрос
Мне нужно преобразовать 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
Затем вам нужно проработать пункты, выделенные на вашей странице.