技巧: 用 HTML Tidy 将 HTML 转换成 XML
来源:互联网 发布:广电总局 知乎 编辑:程序博客网 时间:2024/05/16 20:54
======================================================
注:本文源代码点此下载
======================================================
这篇技巧文章示范了如何用一种简单的开放源代码工具 html tidy,将 html 文档转换成 xml(更确切地说是 xhtml)。这种转换对于要将网站迁移到 xml 上去的网管来说是很有用的。同时那些需要与以前的 html 工具交互的 xml 转换工具也能从中获益。
当网管们要将网站从单纯的 html 转换到 xml/xsl 上的时候,需要面临的挑战之一就是如何保留原有的 web 站点。因为如果要是将老的站点全部抛弃,重新开始设计新站点,付出的代价就太大了。所以,人们需要一种自动化的手段,将 html 站点带入 xml 时代。
即便对于 xml 转换工具而言,依然需要处理 html 文件:很多产品都提供了可以将文件导出为 html 文档的选项。您可能也会希望将这种选项集成到您的 web 站点中。
这篇技巧文章讨论的 html tidy 是一种功能强大的工具,它可以帮助您将旧的 html 页面转换到新的标准上,比如 xml。tidy 的分发方式是开放源代码。
实用的工具
当您将站点从 html 升级到 xml 的时候,所需要的基本工具就是 html tidy。html tidy 最初的开发者是 dave raggett,并通过 w3c 网站以开放源代码许可协议分发。html tidy 现在是由 sourceforge 上的一群志愿人员在维护。它还有基于 java 语言的版本(或许称之为 jtidy 更加合适些),参阅参考资料。目前来讲,其中至少还包括一组 api,使您能够将 html tidy 作为类库集成到您自己的应用程序之中。
html 和 xml 都是从 sgml 派生出来的标记语言,因此两者有很多共通的地方。但是,它们之间有两个最主要的区别:
xml 的语法限制性更强;在 xml 中最主要的一点就是,您必须记住要写结束标记。
编写 html 代码的时候通常可以相对粗心一些,因此 html 文件很少有没有错误的。
早期的 web 浏览器容错性很强,因此网管当中滋生出一些草率的习惯。在那个时候,浏览器的目标是吸引尽可能多的用户,并鼓励网管发布更多的网页。这种策略十分奏效,web 上的内容开始以指数级的速度增长。
然而,糟糕的编码习惯引发了各种各样不兼容的情况。html tidy 最初的设计目标就是解决这样的问题。它通过重写 html 页面,以顺应最新的 w3c 标准。在这个过程中,html tidy 解决了包括标记不完整在内的很多常见错误。
尽管 html tidy 最初是用于处理 html 页面的,但是它也支持 xhtml 这一 xml 词汇表。
让我们举个例子。我将会处理一个由 photoshop 生成的照片库。您也可以使用其他的 html 文档,但是如果您想采用和我一样的文件,可以从参考资料 中找到图片库的下载链接。清单 1 是从图片库中节选的一部分文档。您可以看到,里面用的是普通的 html 代码。
清单 1.index.html (节选)
journey to windsor
journey to windsor
benoît marchal
july 2003
bmarchal@pineapplesoft.com
dscn0824.jpg
a bright, red mailbox inside the castle. it seems oddly familiar
in an historic setting.
windsor castle
© 2003, benoît marchal
tidy 出场
显然,第一步是下载并安装 html tidy(您可以从参考资料 中找到相关链接)。html tidy 有很多操作系统上的版本,包括 windows、linux 以及 macos。缺省的可执行程序是一个命令行工具,windows 和 macos 上有 gui 版本。
运行 html tidy 的方法是,打开终端,输入下面的命令:
tidy -asxhtml -numericindex.xml
太棒了!html tidy 立刻将 index.html 转换成了 index.xml。html tidy 会在输出信息中把转换过程中对原始的 html 文档所作的处理以高亮显示出来。在大多数情况下,您可以放心地忽略这些消息。
html tidy 是作为过滤器运行的,因此它希望从标准输入设备获得数据,并将处理结果打印到标准输出设备上。重定向操作符()可以用于处理文件。缺省条件下,html tidy 产生的是一个干净的 html 页面,不过您也可以通过设置如下两个选项来输出 xml:
-asxhtml 输出的是 xhtml,而不是 html。
-numeric 用字符实体取代 html 实体。比如,用 î 取代 î 。
xhtml 和 html 之间的差距听起来好像微不足道(毕竟两者的名字上只是多了一个“x”而已),但是这个 x 却是很重要的。xhtml 是 html.4.01 的版本之一,已经符合 xml 的语法。词汇表没有变化(xhtml 使用的也是您所熟悉的标记,如
、、和 。
而不能写成 )。
这是一个合法的 xml 文档。
而且。
为了生成它所做的工作是很少的。
- 技巧: 用 HTML Tidy 将 HTML 转换成 XML
- 技巧: 用 HTML Tidy 将 HTML 转换成 XML
- 用 HTML Tidy 将 HTML 转换成 XML
- 用 HTML Tidy 将 HTML 转换成 XML
- 用HTML Tidy将HTML转换为XML
- 将HTML转换成XML
- (转)将HTML转换为XHTML的开源工具HTML Tidy
- 将HTML转换为XHTML的开源工具HTML Tidy(支持gb2312)
- 将 HTML 文件转换成 XML
- xslt将xml转换成html
- 将XML转换成HTML格式
- 将 HTML 文件转换成 XML
- 将 HTML 文件转换成 XML
- 在服务器端将XML转换成HTML
- html tidy (html 格式化)
- 用java、msxml将xml转换成html
- 关于利用xstl将xml转换成xml或html
- xslt将word转换成html,xslt将xml转换成html
- Delphi 的字符及字符串[3] - String 中的秘密
- Java IO 理论笔记
- Java中从Orcle里取出数据时,为什么提示“无效的列索引”
- java环境搭建
- 语义化的HTML标签和属性(总结)
- 技巧: 用 HTML Tidy 将 HTML 转换成 XML
- [转]李战大师-悟透delphi-第一章 delphi的原子世界
- Java网络编程
- Delphi制作DLL
- AJAX框架汇总
- VC与Delphi之间动态链接库互相调用
- Delphi 完全时尚手册之 Visual Style 篇 (界面不错) 转自http://blog.csdn.net/iseekcode/article/details/4733229
- 初步了解 ASP.NET AJAX 扩展
- AJAX与callback的区别(续asp.net2.0客户端回调的使用)