如何将HTML转换为XHTML?
时间:2020-03-06 14:46:32 来源:igfitidea点击:
我需要将HTML文档转换为有效的XML,最好是XHTML。最好的方法是什么?有人知道什么工具包/库/样本/ ...可以帮助我完成该任务吗?
为了更清楚一点,我的应用程序必须在运行时自动进行转换。我没有寻找可以帮助我将某些页面手动移动到XHTML的工具。
解决方案
使用HTML Tidy从HTML转换为XML
可下载的二进制文件
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
最简单的方法是设置Visual Studio IDE,以识别需要进行的更改。
我们可以在Visual Studio 2008中执行以下操作:
工具,选项,文本编辑器,HTML,验证并选择适当的目标。
可能是XHTML 1.1或者XHTML 1.0 Transitional。
有关不同类型的一些信息,请阅读:
http://msdn.microsoft.com/en-us/library/aa479043.aspx
然后,我们需要处理页面上突出显示的点。
我们可以使用HTML Agility Pack。它来自CodePlex的开源项目。
Validator.nu HTML解析器附带一个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。