C# 如何将HTML转换为XHTML?

C# 如何将HTML转换为XHTML?,c#,.net,html,xhtml,converter,C#,.net,Html,Xhtml,Converter,我需要将HTML文档转换为有效的XML,最好是XHTML。最好的方法是什么?有人知道工具箱/库/样本/…任何能帮助我完成任务的东西吗 更清楚一点,我的应用程序必须在运行时自动进行转换。我不想找一个工具来帮助我手动将一些页面移动到XHTML。 JRoppert,出于您的需要,我想您可能想看看 c:\temp>tidy-help 整理[选项…][文件…][选项…][文件…] 清理和漂亮打印HTML/XHTML/XML的实用程序 看见http://tidy.sourceforge.net/ 2006

我需要将HTML文档转换为有效的XML,最好是XHTML。最好的方法是什么?有人知道工具箱/库/样本/…任何能帮助我完成任务的东西吗

更清楚一点,我的应用程序必须在运行时自动进行转换。我不想找一个工具来帮助我手动将一些页面移动到XHTML。

JRoppert,出于您的需要,我想您可能想看看

c:\temp>tidy-help
整理[选项…][文件…][选项…][文件…]
清理和漂亮打印HTML/XHTML/XML的实用程序
看见http://tidy.sourceforge.net/
2006年2月14日发布的HTML Tidy for Windows选项:
文件操作
-----------------
-输出,-o将输出写入指定的
-从指定的配置设置配置选项
-文件,-f将错误写入指定的
-修改,-m修改原始输入文件
处理指令
---------------------
-缩进,-i缩进元素内容
-换行,-w在指定的位置换行文本。如果
他失踪了。如果省略此选项,则
默认配置选项“wrap”适用。
-大写,-u形力标记到大写
-清除,-c用CSS替换字体、NOBR和中心标记
-裸露,-b去掉智能引号和em破折号等。
-数字,-n输出数字而不是命名实体
-错误,-e仅显示错误
-安静,-q抑制非必要输出
-省略可选的结束标记
-xml指定输入为格式良好的xml
-asxml,-asxhtml将HTML转换为格式良好的XHTML
-ashtml强制将XHTML转换为格式良好的HTML
-访问权限执行附加的访问权限检查(=0、1、2、3)。
如果缺少,则假定为0。
字符编码
-------------------
-未转换为实体的原始输出值高于127
-ascii输入使用ISO-8859-1,输出使用US-ascii
-拉丁语输入使用ISO-8859-15,输出使用US-ASCII
-拉丁语1输入和输出均使用ISO-8859-1
-iso2022将ISO-2022用于输入和输出
-utf8输入和输出均使用UTF-8
-mac使用MacRoman输入,US-ASCII输出
-win1252使用Windows-1252进行输入,使用US-ASCII进行输出
-ibm858使用IBM-858(CP850+欧元)进行输入,使用US-ASCII进行输出
-utf16le输入和输出均使用UTF-16LE
-utf16be输入和输出均使用UTF-16BE
-utf16将UTF-16用于输入和输出
-big5对输入和输出都使用big5
-shiftjis将Shift_JIS用于输入和输出
-语言设置两个字母的语言代码(供将来使用)
混杂的
-------------
-版本,-v显示文件的版本
-救命啊,-h,-?列出命令行选项
-xml帮助以xml格式列出命令行选项
-帮助配置列出所有配置选项
-xml配置以xml格式列出所有配置选项
-显示配置列出当前的配置设置
将--blah blarg用于参数为“blarg”的任何配置选项“blah”
输入/输出分别默认为标准输入/标准输出
除-f之外的单字母选项可以组合使用
如:tidy-f errs.txt-imu foo.html
有关HTML的更多信息,请参阅http://www.w3.org/MarkUp

最简单的方法是设置Visual Studio IDE,以确定需要进行的更改。 您可以在Visual Studio 2008中执行此操作,方法是: 工具、选项、文本编辑器、HTML、验证和选择适当的目标。 可能是XHTML1.1或XHTML1.0

有关不同类型的一些信息,请阅读:


然后您需要完成页面上突出显示的点。

您可以使用。它的开源项目来自CodePlex。

附带了一个HTML2XML示例程序,该程序使用HTML5解析算法和信息集强制规则进行转换。

使用Html2Xhtml for.NET 4.0:

内存中字符串到字符串的转换:

var xhtml = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToEnd();
var xdoc = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToXDocument();
内存中字符串到XDocument的转换:

var xhtml = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToEnd();
var xdoc = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToXDocument();
有关更多信息,请参阅。

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

Html2Xhtml是一个.NET4.0库,用于将HTML转换为GPLv2或更高版本许可的XHTML

我在欧盟大型在线数据库的本地重建中测试了Html2Xhtml。Tidy/Tidy.NET在大多数情况下甚至不会产生有效的输出,Chilkat的HTML到XML有点慢,产生了奇怪的结果(错位、缺失、无法解释的元素)。为了找到一个免费、快速、可靠的转换工具,我创建了这个库。它的转换速度比我测试的所有其他库快2-4倍


Html2Xhtml与LINQ to XML的强大功能相结合,是所有大规模数据提取和web爬网场景的优秀工具。

您可以使用整洁的可执行文件将html转换为xhtml:

tidy-asxhtml-numericindex.xhtml


您可以检查c#实现。

对不起,我的问题不清楚。我需要在运行时自动进行转换。我有完全相同的问题,并使用了这个答案,它工作得很好。特别是对于XElement的转换。不幸的是,第一个链接现在已经死了。但这里似乎仍然可以找到内容: