HTML Tidy 库的托管包装器
HTML Tidy C 库一小部分的托管 C++
引言
这是一个小型库,处于初始创建状态,旨在提供一种本地 .NET 方式来访问 HTML Tidy 库的功能。
HTML Tidy 是一个开源 C 库,用于检查和生成干净的 XHTML/HTML。 换句话说:您可以将格式错误的 HTML 传递给该库,它将尽最大努力修复错误并清除 HTML 中不必要的项目/标签。
库
已经存在一种通过 Charles Reitzel 的 ATL 封装来从 .NET 访问该库的方法(此处是源代码的 SourceForge CVS 仓库)。 但您首先需要注册 COM ActiveX 控件。
为了消除这种注册限制,我创建了 HTML Tidy 原始 C 库的 C++/CLI 封装。 该封装是一个普通的库,您可以通过简单地添加对库的引用在 .NET 应用程序中使用它。
请注意,我创建的库目前不值得被称为“库”,因为它到目前为止真的只包含一个函数。
我现在发布它的原因是我希望尽快向与我处于相同境地的人(即需要 HTML Tidy 的 .NET 封装)提供基本思路。 以我的库为起点并添加您需要的函数相当容易。 我完成了核心工作,您只需添加您喜欢的函数即可。
当然,随着我的需求增长,我将逐步向库中添加更多函数。 我也鼓励您自己对其进行增强,并将您的代码发送给我,以便我将其包含在内。
底层的 C 库
编译原始 HTML Tidy C 库是一件令人愉快的事情。 在首先启动提供的 Visual Studio .NET 项目文件后,编译了调试和发布版本,没有收到任何错误或警告。 令人惊叹! 我从未有过如此无缝的编译外来 C/C++ 库的体验。
使用我的 .NET 库
该库当前有一个函数可供调用
public string CleanHtml( string html );
只需传递一个字符串,即可返回一个清理后的字符串。 简单,不是吗?
一个示例用法可能是
using ( HtmlTidy tidy = new HtmlTidy() ) { string html = @" <html> <head> <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-16""> </head> <body> <p>Hello, <b><i>With German</b></i>: ÄÖÜ. Some Chinese: 讪.</p> <body> </html> "; string s = tidy.CleanHtml( html, HtmlTidyOptions.ConvertToXhtml ); Console.WriteLine( s ); }
如您所见,只需将字符串传递给该函数。 还有一个带有单个选项的重载(将来也会得到增强)。
重新分发
为了重新分发该库,请确保同时分发 Microsoft CRT 运行时 DLL “msvcr80.dll”、“msvcm80.dll”和“msvcp80.dll”。 这些库通常位于文件夹“C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT”中。
历史
- 2007-01-14
添加了关于重新分发 CRT 库的部分。
- 2007-01-12
发布了第一个版本。